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

发表于:2016-3-24 10:14

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:孟宇    来源:51Testing软件测试网采编

  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清空表的实现方法。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号