日期:2014-05-16  浏览次数:20687 次

mysql清空数据库所有表的语句
有个数据库名称为databaseA
它下面有表a,b,c,d,e,f......好多表


现在求一mysql语句 清空数据库databaseA下所有的表

跪求 在线等 住好人有好报 一生平安!

------解决方案--------------------
写个存储过程好了。
------解决方案--------------------
用SP循环取得表名,再TRUNCATE
OR
mysql -uroot -p123 -N -e "SHOW TABLES">123.TXT

用EXCEL处理123。TXT,加入TRUNCATE,在MYSQL中运行SQL语句
------解决方案--------------------
select table_name from information_schema.tables where TABLE_SCHEMA = 'databaseA'
查出这个库所有的表名
要么手工拷贝出来 编辑 N行 truncate table tb_name;
要么用游标 或者循环语句 拼成过程执行下。
------解决方案--------------------
select concat('truncate table ',table_name,';') into outfile '/home/truncatetable.sql' from information_schema.tables;


然后 mysql -uroot -p123 databaseA< /home/truncatetable.sql
------解决方案--------------------
show tables 得到所有表名,复制到EXCEL中,然后利用EXCEL公式生成如下

truncate table tablA;
truncate table tablB;
...

然后一次性复制到MYSQL工具中执行即可。

------解决方案--------------------
SELECT name,ROW_NUMBER() over(order by name) as r into #c FROM sysobjects WHERE Type = 'U' And Name <> 'dtproperties' and name<>'sysdiagrams' and name<>'tb_multiType' and name<>'tb_role' and name<>'TB_BoardAction' and name<>'TB_USER' and name<>'TB_BG_MENU'
declare @truncatesql varchar(max)
set @truncatesql=(select convert(varchar(max), 'truncate table '+name)+';' from #c for xml path(''))
print @truncatesql
exec (@truncatesql)