方法一:
原理
查询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所有外键内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论