删除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所有外键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
记录无法安装mysql-Invalid GPG Key from file:/etc/pki/rpm-gpg/RPM-G
在aliyun上安装MySQL时由于上次错误卸载mysql 导致校验文件出问题。下面小编给大家分享记录无法安装mysql-Invalid GPG Key from file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql的解决方法,需要的朋友参考下吧2017-01-01
select into from和insert into select的区别举例详解
这篇文章主要介绍了SQL中的SELECT INTO和INSERT INTO SELECT两种语句的区别和用法,SELECT INTO用于创建新表并复制数据到新表中,而INSERT INTO SELECT用于将数据从一个表插入到已存在的另一个表中,需要的朋友可以参考下2025-03-03
关于MySQL数据迁移--data目录直接替换注意事项的详解
本篇文章是对关于MySQL数据迁移--data目录直接替换的注意事项进行了详细的分析介绍,需要的朋友参考下2013-06-06


最新评论