繁体   English   中英

插入外键正确的SQL执行

[英]insert into foreign key proper sql execution

我发现我的PK引起的错误没有值,因此我在FK上插入失败。

像表A的uId是表B的uId(FK)的PK,因此,如果我想在表B的uId中插入1,则表A的uId必须具有值1。

但是那是2查询执行吗? 应该怎么写? 我第二次尝试了2条sql执行-插入FK失败。

我将注释中讨论的3种方法放到了SqlFiddle中

-- Null Foreign Key, if the relationship is optional
INSERT INTO B(AID) VALUES(NULL);

-- Lookup - if you know of another `natural` column in table A, 
-- e.g. here we know the Name we need to link to
INSERT INTO B(AID) VALUES((SELECT AID FROM A WHERE AName = 'Foo'))

-- Identity Insert - when A and B are inserted at the same time, 
-- and you need to pass A ID to B
INSERT INTO A(AName) VALUES('Baz');
INSERT INTO B(AID) VALUES((SELECT SCOPE_IDENTITY()));

SELECT * FROM A;
SELECT * FROM B;

对于MySql,它是类似的,只使用LAST_INSERT_ID() vs SCOPE_IDENTITY()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM