Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从表2中具有主键的外键约束中删除记录_Mysql_Database - Fatal编程技术网

Mysql 从表2中具有主键的外键约束中删除记录

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

假设表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 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,但根据您的示例,应该是相反的。