gpt4 book ai didi

MySQL - 从多个表中删除外键

转载 作者:行者123 更新时间:2023-11-29 12:34:14 25 4
gpt4 key购买 nike

我想删除一个被我的数据库中许多其他表引用的表。通过下面的查询,我找到了 320 个引用我要删除的父表的表。

SELECT
ke.referenced_table_name parent,
ke.table_name child,
ke.constraint_name
FROM
information_schema.KEY_COLUMN_USAGE ke
WHERE
ke.referenced_table_name = 'MasterData';

我想删除这些表上的FOREIGN KEY 约束。一件一件地,它会是这样的:

ALTER TABLE a
DROP FOREIGN KEY a_md_fk;

有没有一种方法可以组合这两个查询,以便我一次性删除所有 FOREIGN KEY,而不是 320 个单独的语句?

最佳答案

使用此查询:

SELECT CONCAT('ALTER TABLE ', ke.table_name, ' DROP FOREIGN KEY ', ke.constraint_name, ';')
FROM
information_schema.KEY_COLUMN_USAGE ke
WHERE
ke.referenced_table_name = 'MasterData';

要生成 SQL 查询,您需要删除所需的外键。使用您喜欢的方式来运行它们(将它们保存在文件中,然后通过管道将它们传输到 mysql 命令行客户端,或者如果您使用图形 MySQL 客户端,则仅使用复制和粘贴)。

关于MySQL - 从多个表中删除外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27037066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com