Оператор 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 (эта запись должна быть доступна в таблице).


ошибка, вероятно, брошена, потому что есть внешний ключ от Super_SSN до первый.