清空mysql一个库中的所有表_mysql怎样清空一个数据库中的所有表_MySQL
轉載自: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
本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴
本文系統來源:php中文網
總結
以上是生活随笔為你收集整理的清空mysql一个库中的所有表_mysql怎样清空一个数据库中的所有表_MySQL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄心红薯的功效与作用、禁忌和食用方法
- 下一篇: linux cmake编译源码,linu