我正在将一个表迁移到一个新的数据库中。这里有一个fk约束问题,因为两个表之间从来没有一个关系集(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)
不起作用。我现在已经想好了,我要创建一个包罗万象的联系人,这样我就会更新所有的通信。contact_ID与新的捕获所有id。问题是我不知道该怎么做。语法是什么?
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来更新它们。