背景:在數據庫分表的時候,需要清空所有表的數據兩種刪除表內數據的sql,奈何分出來的表太多……
清空 表的sql語句:
truncate test1_copy1 ;
但是需要清空以下所有表的數據,需要執行多次以上語句
如果表數量過多,一個一個清楚非常麻煩,提供兩種思路:
一次性把表刪完了,重新建(如果有建表語句的話),但是這一般沒有,都是程序生成的。生成清空數據的sql腳本,執行。
介紹第二種:
我們只需要仿照上面清空某個表的sql語句來生成刪除多個表的sql語句,然后執行即可
獲取到該數據庫下(我這里是test)的所有表名稱。
-- 查看某個庫下的所有表
select table_name from information_schema.TABLES where table_schema = 'test' order by table_name

然后生成清空表的語句
-- 生成清空表的語句

select CONCAT('truncate ',table_name,' ;') table_name from information_schema.TABLES where table_schema = 'hf_ai_hss' order by table_name;
最后復制結果生成的語句執行一下即可。
也可以將結果輸出成文件兩種刪除表內數據的sql,然后執行sql文件(如何做具體請百度)。