【问题标题】:MySQL cascade deleting for one queryMySQL级联删除一个查询
【发布时间】:2014-03-18 20:16:11
【问题描述】:

我有一个包含很多表的 mysql 数据库。每个表都有 InnoDB 格式。 我有一张名为“公司”的表。每个公司都有一个账户,账户有交易,还有很多其他相关的表。

我想删除一些公司以及与之相关的所有数据。 每个外键在删除事件上都有“NO ACTION”。

如何在不为每个外键手动设置 ON DELETE CASCADE 的情况下临时删除所有关系?

【问题讨论】:

  • 表太多。确实,公司有用户,用户有图片,公司也有账户,账户有交易等等。我只是懒得加入半个数据库 :) 我决定将 no action 改为级联删除,快得多。但我认为有一种方法可以“临时启用级联删除”之类的
  • 好吧!但是你太懒了! :-)
  • 不仅仅是懒惰的问题,也是面向未来的问题。使用显式连接执行此操作意味着每次更改架构时都必须更新删除脚本。

标签: mysql sql


【解决方案1】:

如果你想在删除分区上更改 fk,你会做这样的事情

ALTER TABLE `table1`  
ADD CONSTRAINT `fk_name` 
    FOREIGN KEY (`fk_table2_id`) REFERENCES `table2` (`t2`) ON DELETE CASCADE;  

【讨论】:

    猜你喜欢
    • 2011-04-04
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 2011-03-01
    • 2012-07-28
    • 1970-01-01
    • 2020-06-14
    相关资源
    最近更新 更多