如何在sql server 2016中更新2个链接表

时间:2017-11-02 19:03:14

标签: sql sql-server database sql-server-2016

我有两个表,两个表之间定义了一个外键关系。如果我尝试更新第二个表,则会收到以下错误:

  

UPDATE语句与REFERENCE约束冲突   “FK__T2__owner__48CFD27E”。冲突发生在数据库“MY_DB”中,   表“dbo.T2”,列'T2.colomn1'。

如何更新引用第一个表的第二个表中的列?

2 个答案:

答案 0 :(得分:0)

  • 当您尝试更新表T1中的条目时,请确保我们在具有外键引用的列中更新的值,您使用引用的外键表中的值进行更新(除非该列可以为空)。

  • 您尝试更新T2的值,column1应该已经存在于T1.column2中。

答案 1 :(得分:0)

可能没有必要更新两个表,事实上你很有可能不想这样做。根据你的评论,我假设你有一个postal_code表?你似乎不太可能在地址上有外键,但我认为这是可能的。您不想同时更新两者的原因是post_office表中的其他行可能使用相同的postal_code

只需将新邮政编码添加到postal_code表格即可。 (我已经猜到了这个名字。)

INSERT INTO postal_code
VALUES ('1234567891')

然后进行更新。

UPDATE post_office
SET address = 'Tehran p 190', postal_code = '1234567891'
WHERE social_id = '0020366760'

如果您认为任何其他邮局不使用旧的邮政编码,您可以随时清理。

DELETE FROM postal_code
WHERE id = 'someid'