删除数据库所有表,清理冗余数据,网友推荐高效操作

文章导读
高效操作:MySQL中删除所有表的最快方法是生成DROP TABLE语句然后执行。登录mysql,执行如下SQL:SELECT CONCAT('DROP TABLE IF EXISTS ', table_name, ';') FROM information_schema.tables WHERE table_schema = '你的数据库名';把结果复制执行即可全部删除表。然后DROP DATA
📋 目录
  1. 网友分享一
  2. 网友分享二
  3. 网友分享三
  4. 网友分享四
  5. 网友分享五
  6. 网友分享六
A A

高效操作: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或管理员。