1. 程式人生 > >mysql 怎樣清空一個數據庫中的所有表

mysql 怎樣清空一個數據庫中的所有表

Mysql清空表是很重要的操作,也是最常見的操作之一,下面就為您詳細介紹Mysql清空表的實現方法,希望能夠對您有所幫助。

方法1:重建庫和表

一。只匯出表結構

匯出整個資料庫結構(不包含資料)
mysqldump -h localhost -uroot -p123456  -d database > dump.sql

匯出單個數據表結構(不包含資料)
mysqldump -h localhost -uroot -p123456  -d database table > dump.sql


二。只匯出表資料

匯出整個資料庫資料

mysqldump -h localhost -uroot -p123456  -t

database > dump.sql

三。匯出結構+資料

匯出整個資料庫結構和資料
mysqldump -h localhost -uroot -p123456 database > dump.sql

匯出單個數據表結構和資料
mysqldump -h localhost -uroot -p123456  database table > dump.sql




方法2:生成清空所有表的SQL
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'"
輸出結果如下:
TRUNCATE TABLE AUTHGROUPBINDINGS;
TRUNCATE TABLE AUTHGROUPS;
TRUNCATE TABLE AUTHUSERS;
TRUNCATE TABLE CORPBADCUSTOMINFO;
TRUNCATE TABLE CORPSMSBLACKLISYInfo;
TRUNCATE TABLE CORPSMSFILTERINFO;
TRUNCATE TABLE CORPSMSINFO;
TRUNCATE TABLE EABASEREGINFOS;
TRUNCATE TABLE EACORPBLOB;
TRUNCATE TABLE EACORPINFO;
....
....
這樣就更完善了:
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql eab12
即清空eab12中所有的表。
但是如果有外來鍵的話,很可能會報錯。因此還需要加個-f
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql -f eab12
多執行幾次,直到不報錯。

以上就是Mysql清空表的實現方法。