删除MySQL中所有表的外键的两种方法
作者:梁云亮
这篇文章主要介绍了删除MySQL中所有表的外键的两种方法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
方法一:
原理
查询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';
第二步:
将执行第一步得到的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;
到此这篇关于删除MySQL中所有表的外键的两种方法的文章就介绍到这了,更多相关删除MySQL所有外键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!