Mysql 从表2中具有主键的外键约束中删除记录
假设表1中有Mysql 从表2中具有主键的外键约束中删除记录,mysql,database,Mysql,Database,假设表1中有 wordid col2 1 x 2 y 3 x 现在表2已经完成 wordid col3 1 a 2 b 3 c 4 d table1表中的wordid列是table1表中的主键 table2表中的wordid列是table2表中的外键 我想删除表2中所有不受任何约束的记录。此处需要删除wordid为4的行我假设您尚未设置FK或未强制执行完整性 DELETE FROM table2 WHERE wordid
wordid col2
1 x
2 y
3 x
现在表2已经完成
wordid col3
1 a
2 b
3 c
4 d
table1表中的wordid列是table1表中的主键
table2表中的wordid列是table2表中的外键
我想删除表2中所有不受任何约束的记录。此处需要删除wordid为4的行我假设您尚未设置FK或未强制执行完整性
DELETE FROM table2 WHERE wordid NOT IN
( SELECT wordid FROM table1 )
正如哈姆雷特在评论中建议的那样,您应该在FK中使用ON DELETE CASCADE并强制执行FK完整性。表2中不能有wordid=4,因为它是FK。我在表1中有一条记录wordid=4,我已经删除了该记录。现在我想从表2中删除记录。您可以使用级联删除。这将同时删除wordid=1,2,3。。这不是我需要查找未绑定到frng键约束的行并从中删除它们的动机table2@KaNcH您的外键有问题。你是倒着做的吗?看起来表1上的外键引用了表2,但根据您的示例,应该是相反的。