У меня есть проблемы по обновлению набора столбцов в качестве первичного ключа, даже я сделал на обновлении набора по умолчаниюоператор обновления противоречило внешнему ключу
это мой код для создания таблиц, я поставил на обновление набора по умолчанию
create table department(
id int default 10 primary key,
name varchar(50)
);
create table employee
(
id int primary key,
dept_id int default 40 foreign key references department(id) on update set default on delete set default,
name varchar(40)
);
после этого, я вставил данные в таблицы
insert into department
values
(1,'hr'),
(2,'programming'),
(3,'telesales'),
(4,'database')
insert into employee
values
(1,1,'mohammed'),
(2,2,'magd'),
(3,1,'soha'),
(4,3,'sameh'),
(5,4,'ashraf')
, но, когда я запускаю этот код для обновления столбца идентификатора
update department
set id = 44 where id = 4
Я получаю эту ошибку
The UPDATE statement conflicted with the FOREIGN KEY constraint "FK__employee__dept_i__571DF1D5". The conflict occurred in database "test", table "dbo.department", column 'id'.
The statement has been terminated.
, но я не знаю, где моя вина!
благодаря
Итак, вы объявили столбец, чтобы иметь значение по умолчанию '40', который представляет собой значение не содержится в' department' таблицы либо до, либо после обновления , и у вас есть 'on update set default' в ограничении внешнего ключа. Что вы ожидали от вас? –