删除MySQL中所有表的外键的两种方法

来自:网络
时间:2024-08-28
阅读:
免费资源网 - https://freexyz.cn/

方法一:

原理
查询schema中所有外键名称然后拼接生成删除语句

第一步:

SELECT CONCAT('ALTER TABLE ',TABLE_SCHEMA,'.',TABLE_NAME,' DROP FOREIGN KEY ',CONSTRAINT_NAME,' ;') 
FROM information_schema.TABLE_CONSTRAINTS c 
WHERE c.TABLE_SCHEMA='数据库名' AND c.CONSTRAINT_TYPE='FOREIGN KEY';

删除MySQL中所有表的外键的两种方法

第二步:

将执行第一步得到的SQL语句拷贝到命令行中执行,就会删除所有的外键了。

方法二

-- 禁用外键约束
SET FOREIGN_KEY_CHECKS = 0
-- 启用外键约束
SET FOREIGN_KEY_CHECKS = 1;

由于FOREIGN_KEY_CHECKS是基于session的,当关闭了session重新建立连接,这个变量就会恢复默认值,也就是开启外键约束,当然我们也可以全局的FOREIGN_KEY_CHECKS变量。

SET GLOBAL FOREIGN_KEY_CHECKS = 0;
或者:
SET @@GLOBAL.FOREIGN_KEY_CHECKS = 0;

修改完成后,可以使用下面命令查看修改后的结果:

SELECT @@FOREIGN_KEY_CHECKS;
免费资源网 - https://freexyz.cn/
返回顶部
顶部