方法一:
原理
查询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;