我有两个表,两个表之间定义了一个外键关系。如果我尝试更新第二个表,则会收到以下错误:
UPDATE语句与REFERENCE约束冲突 “FK__T2__owner__48CFD27E”。冲突发生在数据库“MY_DB”中, 表“dbo.T2”,列'T2.colomn1'。
如何更新引用第一个表的第二个表中的列?
答案 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'