Heim > Datenbank > MySQL-Tutorial > mysql 怎样清空一个数据库中的所有表_MySQL

mysql 怎样清空一个数据库中的所有表_MySQL

WBOY
Freigeben: 2016-05-31 08:46:39
Original
3321 Leute haben es durchsucht

转载自:http://blog.csdn.net/zhangzhizhen1988/article/details/8432146


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/null
2.在update,insert,delete的时候,我们更需要知道,它影响了多少行;可以这样使用  mysql --skip-column-names(-N) -e "update table set field=xx limit 10;select row_count();" database
3.在select的时候,我们更需要知道,它找到多少行;可以这样使用  mysql --skip-column-names(-N) -e "update table set field=xx limit 10;select found_rows();" database
4.在insert的时候,我们更需要知道,它insert的id;可以这样使用  mysql --skip-column-names(-N) -e "update table set field=xx limit 10;select last_insert_id();" database 但是会碰到一个问题,只要是concat里面有一个是 null 的就会返回 null而且,每个中间都要有 '#',也比较麻烦 mysql="select concat_ws( '###',replace( ifnull(cid,''),' ','' ),replace( ifnull(username,''),' ','' ),replace( ifnull(password,''),' ','' ),replace( ifnull(comName,''),' ','' ),replace( ifnull(scomname,''),' ','' ),replace( ifnull(l_person,''),' ','' ),replace( ifnull(l_mobile,''),' ','' ),replace( ifnull(telephone,''),' ','' ),replace( ifnull(remark,''),' ','' ),replace( ifnull(status,''),' ','' ) ) from company order by cid asc limit 0,15"; 用concat_ws(delimiter,'xx','yy')==xx#yy用 ifnull( field ,replace_sta

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage