高效操作:MySQL中删除所有表的最快方法是生成DROP TABLE语句然后执行。登录mysql,执行如下SQL:
SELECT CONCAT('DROP TABLE IF EXISTS ', table_name, ';') FROM information_schema.tables WHERE table_schema = '你的数据库名';
把结果复制执行即可全部删除表。然后DROP DATABASE 和 CREATE DATABASE 重新建库,超级快!
网友分享一
兄弟们,清理MySQL数据库所有表,千万别一个个删,效率低爆。用这个脚本:
SET FOREIGN_KEY_CHECKS = 0;
然后SELECT 'DROP TABLE ' + QUOTE_NAME(TABLE_SCHEMA) + '.' + QUOTE_NAME(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '你的库名';
执行掉就干净了。记得最后SET FOREIGN_KEY_CHECKS = 1;
网友分享二
高效删表神器!在phpMyAdmin里选数据库,SQL标签,粘贴:
SET @DATABASE_NAME = 'test';
SELECT CONCAT('DROP TABLE ', TABLE_NAME, ';') FROM information_schema.tables WHERE table_schema = @DATABASE_NAME;
全选复制执行,秒删所有表,数据全清零!
网友分享三
SQL Server删所有表:EXEC sp_MSforeachtable "DROP TABLE ?"
简单粗暴,一键全删。清理冗余数据直接物理删除,库瞬间变空!小心别删错库哦。
网友分享四
PostgreSQL删所有表:
DO $$ DECLARE r RECORD;
BEGIN
FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP
EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
END LOOP;
END $$;
级联删除外键,彻底清理。
网友分享五
想清理数据不删表?TRUNCATE TABLE tablename; 每个表执行,或者生成脚本:
SELECT CONCAT('TRUNCATE TABLE ', table_name, ';') FROM information_schema.tables WHERE table_schema='数据库名';
网友分享六
终极杀招:mysqldump --add-drop-table 数据库名 > dump.sql 备份结构,然后DROP DATABASE 数据库名; CREATE DATABASE 数据库名; 最干净,冗余全无!
FAQ
Q: 删除表后数据能恢复吗?
A: 如果没备份,几乎不可能恢复,建议先备份。
Q: 外键会影响删除吗?
A: 会,先关掉FOREIGN_KEY_CHECKS=0。
Q: Oracle怎么删所有表?
A: SELECT 'DROP TABLE ' || table_name || ' CASCADE CONSTRAINTS;' FROM user_tables;
Q: 删表需要什么权限?
A: 需要DROP权限,通常root或管理员。