Я создаю свою почти первую базу данных для домашней работы, и у меня возникла проблема.У меня есть таблица Tasks
, в которой есть столбец с сотрудником, который работает над этой задачей, и сотрудником, который изменил статус задачи.Поэтому мне нужно иметь 2 внешних ключа (EmployeeId
и ChangedId
), которые оба ссылаются на столбец Id
таблицы Employee
.
Вот диаграмма, которая описывает то, что я хочу:
Диаграмма базы данных.Взгляните на таблицы «Задачи» и «Сотрудник».
База данных была создана без проблем, но я не могу вставить элементы в таблицу Tasks
.
Вот мой код для этих таблиц:
CREATE TABLE [dbo].[Employees]
(
[Id] INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
[FirstName] VARCHAR(50) NOT NULL,
[SecondName] VARCHAR(50) NOT NULL,
[LastName] VARCHAR(50) NOT NULL
)
CREATE TABLE [dbo].[Tasks]
(
[Id] INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
[Deadline] DATE NOT NULL,
[StatusId] INT NOT NULL,
[ChangedId] INT NOT NULL,
[StatusDate] DATE NOT NULL,
[EmployeeId] INT NOT NULL,
[ShortInfo] VARCHAR(255) NOT NULL,
[ProjectId] INT NOT NULL,
FOREIGN KEY (EmployeeId) REFERENCES Employees(id),
FOREIGN KEY (ChangedId) REFERENCES Employees(id),
FOREIGN KEY (ProjectId) REFERENCES Projects(id),
FOREIGN KEY (StatusId) REFERENCES Status(id)
)
Добавление элементов в Tasks
:
INSERT INTO Tasks(Deadline, StatusID, ChangedId, StatusDate, EmployeeId, ShortInfo, ProjectId)
VALUES ('2019-12-01', 1, 4, '2018-11-29', 2, 'Hack the security system.', 3),
('2019-02-17', 4, 1, '2019-01-19', 3, 'Design new class system.', 1),
('2019-06-01', 3, 2, '2019-01-11', 4, 'Test the last storyline mission.', 2),
('2018-12-05', 2, 2, '2018-10-03', 2, 'Create Zeus statue model.', 2),
('2019-05-21', 1, 1, '2019-04-14', 3, 'Test the Horde campaign.', 1);
Информация об ошибке:
Оператор INSERT конфликтовал с ограничением FOREIGN KEY "FK__Tasks__StatusId__6B24EA82".Конфликт произошел в базе данных «Task4», таблице «dbo.Status», столбце «Id».