Mysql SQL DELETE JOIN按特定顺序由于限制

问题描述

是否可以按特定顺序从不同的表中删除

我需要删除

DELETE t1,t2,t3
FROM T1
LEFT JOIN T2 on t2.id =t1.t2_id
LEFT JOIN T3 on t3.id =t1.t3_id

但由于数据库中的限制,只能按此顺序 (t1>t2>t3)。 有时似乎没有遵循顺序。

解决方法

您可以暂时禁用外键检查

SET FOREIGN_KEY_CHECKS=0;
DELETE t1,t2,t3
FROM T1
LEFT JOIN T2 on t2.id =t1.t2_id
LEFT JOIN T3 on t3.id =t1.t3_id

SET FOREIGN_KEY_CHECKS=1;