如您所见,表使用相同的主键相互引用。这就是问题所在-我知道通过两次INSERT
调用来放置数据会引发错误,表明我违反了PK约束。有没有办法在代码中执行此操作?我想创建一个存储过程,用于添加“主要产品”(SUROWCE),并对应于“库存”(STAN)中的记录。
我的代码尝试:
INSERT INTO STAN VALUES(25, 5, 1000);
INSERT INTO SUROWCE VALUES(25, 'wood');
Msg 547, Level 16, State 0, Line 4
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_STAN_SUROWCE". The conflict occurred in database "TestBazyDanych", table "dbo.SUROWCE", column 'ID_SUROWCA'.
答案 0 :(得分:5)
在1:1关系中,只有一个表具有引用另一个表的外键。因此,您首先要将外键插入表而没有。尝试简单地反转插入顺序:
INSERT INTO SUROWCE VALUES(25, 'wood');
INSERT INTO STAN VALUES(25, 5, 1000);