即使我禁用了外键,为什么我会从参考表中删除`

时间:2015-03-31 17:03:54

标签: mysql delete-row percona

所以我通过将该表连接到另一个表来删除表中的记录。

在开始运行此语句之前,我已禁用外键。

所以我有两个表A和B,我正在使用B列的连接删除表A中的列,以删除与列id匹配的记录以及where子句中的另一个标准。

这是查询

SET FOREIGN_KEY_CHECKS=0;

delete db.A from db.A join db.B USING(id) where name='xx';

SET FOREIGN_KEY_CHECKS=1;

为什么我仍然在mysql进程列表中获得以下'State'

  

从参考表中删除

1 个答案:

答案 0 :(得分:1)

因为您在多表查询(db.A和db.B)中“引用表”(db.A)。

如果您没有在“删除连接”上指定表,则查询将不起作用,因为mysql不知道您要更新哪个表。

因此,您引用要删除的表。