Оператор INSERT конфликтовал с ограничением таблицы внешнего ключа SAME
Я создал таблицу Employee
Create table Employee
(
FName varchar(20) Not Null,
LName varchar(20) Not Null,
SSN int Not Null,
BDate Datetime,
Address varchar(50),
Sex char(1),
Salary money,
Super_SSN int,
Primary Key(SSN),
Foreign Key(Super_SSN) references Employee(SSN)
)
когда я пытаюсь вставить первую строку ,
insert into Employee(FName,LName,SSN,BDate,Address,Sex,Salary,Super_SSN)
values('John','Smith',12345,'1965-01-09','Houston,TX','M',30000,33344)
Я получаю ошибку, как..
ошибка:
оператор INSERT конфликтовал с внешним ключом того же ограничения таблицы "FK_Employee_Employee". Конфликт произошел в базе данных "компания", таблица "dbo.Сотрудник", колонка "SSN".
2 ответов
вам нужно сначала вставить запись для SSN '33344' С значение Super_SSN как NULL
.
INSERT INTO Employee(FName,LName,SSN,BDate,Address,Sex,Salary,Super_SSN)
VALUES (<FName>,<LName>,'33344',<BDate>,<Address>,<Sex>,<Salary>,NULL)
после этого вставить
INSERT INTO Employee (FName,LName,SSN,BDate,Address,Sex,Salary,Super_SSN)
VALUES ('John','Smith',12345,'1965-01-09','Houston,TX','M',30000,33344)
если SSN '33344' возникли Super_SSN
, обновите значение SSN (эта запись должна быть доступна в таблице).