加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – INSERT语句与FOREIGN KEY SAME TABLE约束冲突

发布时间:2020-12-12 07:48:00 所属栏目:MsSql教程 来源:网络整理
导读:我创建了表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 Em
我创建了表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)

我收到的错误就像..

错误:

The INSERT statement conflicted with the FOREIGN KEY SAME TABLE constraint “FK_Employee_Employee”. The conflict occurred in database “Company”,table “dbo.Employee”,column ‘SSN’.

解决方法

您需要首先对SSN’33344’进行INSERT记录,并将Super_SSN值设置为NULL.
INSERT INTO  Employee(FName,Super_SSN)
VALUES (<FName>,<LName>,'33344',<BDate>,<Address>,<Sex>,<Salary>,NULL)

插入之后

INSERT INTO Employee (FName,Super_SSN)
VALUES ('John',33344)

如果SSN’33344’具有任何Super_SSN,则更新SSN值(该记录应在表中可用).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读