我正在将表迁移到新数据库中。存在fk约束问题,因为在2个表之间从未设置过关系(tbl_contacts.contact_ID和tbl_communications.contact_ID,即fk)。我可以用
看到所有行SELECT * FROM Farm.tbl_communication as S
LEFT JOIN Farm.tbl_contacts ON S.contact_ID = Farm.tbl_contacts.contact_ID
WHERE Farm.tbl_contacts.contact_ID IS NULL
我只是想删除这些行,我尝试了这个:
DELETE FROM Farm.tbl_communication
WHERE Farm.tbl_communication.contact_ID (SELECT contact_ID
FROM ( SELECT * FROM Farm.tbl_communication) as S
LEFT JOIN Farm.tbl_contacts ON S.contact_ID = Farm.tbl_contacts.contact_ID
WHERE Farm.tbl_contacts.contact_ID IS NULL)
哪个不起作用。我现在已经想好了,我将创建一个全能的联系人,所以我将使用新的catch-all id更新所有communications.contact_ID。问题是我不知道如何去做。语法是什么?
答案 0 :(得分:1)
DELETE FROM Farm.tbl_communication
WHERE NOT EXISTS (
SELECT 1
FROM Farm.tbl_contacts
WHERE Farm.tbl_contacts.contact_ID = Farm.tbl_communication.contact_ID);
...或者您可以通过将DELETE位更改为UPDATE来更新它们。