【问题标题】:Programmatically add ON DELETE CASCADE to existing foreign key constraints on all tables以编程方式将 ON DELETE CASCADE 添加到所有表上的现有外键约束
【发布时间】:2017-03-17 07:55:10
【问题描述】:
我正在使用具有许多外键的大型数据库(超过 250 个表),但没有一个设置为 ON DELETE CASCADE。我意识到这意味着我需要删除外键约束并重新创建它。这本身并不算太糟糕。但是在现有的 874 个外键约束下,这真的需要我很长时间。
有人对如何实现自动化有任何建议吗?我是一名 PHP 开发人员,但我愿意接受任何人能想到的任何语言的任何解决方案。
【问题讨论】:
标签:
mysql
scripting
foreign-keys
【解决方案1】:
我认为您可以通过编程方式完成。当需要删除主要实体时。 Loop 认为所有表中具有该实体的 PK 的所有行都是 FK。先删除它们。然后删除主表中的主行(实体)。在事务中执行此操作。我不知道。这两种方式听起来都太混乱了。