【问题标题】:Mysql SQL DELETE JOIN in particular order (Due to constraints)Mysql SQL DELETE JOIN 以特定顺序(由于限制)
【发布时间】:2021-10-02 16:43:35
【问题描述】:

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

我要删除

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)。 有时似乎没有遵循顺序。

【问题讨论】:

  • 为什么不在外键约束中声明ON DELETE CASCADE?然后你在 T1 中删除,它会自动删除相关的 T2 和 T3 行。

标签: mysql join foreign-keys sql-delete


【解决方案1】:

您可以暂时禁用外键检查

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 2011-03-25
    • 2010-09-14
    相关资源
    最近更新 更多