MySQL:想实现sql语句进行批量删除数据库或表,而引发的熬夜探究
如果你想批量删除数据库或表,你可以使用以下SQL语句。
批量删除数据库:
SELECT CONCAT('DROP DATABASE `', SCHEMA_NAME, '`;') AS drop_command
FROM INFORMATION_SCHEMA.SCHEMATA
WHERE SCHEMA_NAME NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys');
执行上述查询后,你会得到一系列的DROP DATABASE
语句。请注意,这些语句不会自动执行,你需要将它们复制并手动执行,或者编写一个脚本来自动执行它们。
批量删除表:
SELECT CONCAT('DROP TABLE `', table_schema, '`.`', table_name, '`;') AS drop_command
FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys')
AND table_name NOT IN ('any_important_tables_you_dont_want_to_drop');
同样,这个查询会生成一系列的DROP TABLE
语句。
请谨慎使用这些命令,因为它们会永久删除数据库或表,而没有任何恢复选项。在执行这些操作之前,请确保你已经备份了所有重要的数据。
评论已关闭