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清空表的实现方法。
备注:
SQLyog 11.24 也可以选择数据库---右键单击---更多数据库操作---截位数据库
转载自:http://blog.sina.com.cn/s/blog_71fbce730100obnq.html
1.大多时候,我们需要使用 mysql -e "" database 的方式,执行一些命令,并且select 它会返回包含字段名在内的行,我们还得手工将其去除 mysql -e "select name" database 2>/dev/null | sed -e '/name/d',其实不必这样麻烦,可以直接这样用mysql --skip-column-names[-N] -e "select name" database 2>/dev/null2.在update,insert,delete的时候,我们更需要知道,它影响了多少行;可以这样使用
3.在select的时候,我们更需要知道,它找到多少行;可以这样使用
4.在insert的时候,我们更需要知道,它insert的id;可以这样使用