大数据库批量删除表遇到有外键的表怎么办?
场景:
公司数据库10G+,想快速删除数据库,释放空间;
若遇到有外键的表会出现:
按照这个格式走可以解决问题:
1、自动生成所有的DROP语句,将其中的MyDatabaseName替换成你的数据库名称:
SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';
2、然后,在生成的代码前后添加下面设置FOREIGN_KEY_CHECKS变量的语句:
SET FOREIGN_KEY_CHECKS = 0
-- DROP语句
DROP TABLE IF EXISTS t_upload_assist_check;
DROP TABLE IF EXISTS t_upload_preassist_check;
DROP TABLE IF EXISTS t_user_device;
DROP TABLE IF EXISTS temp_assist_repl;
。。。。。。。
SET FOREIGN_KEY_CHECKS = 1;