dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:1564回复:1

truncate 清空表数据

楼主#
更多 发布于:2016-05-16 10:39
功能:
truncate 语句用于删除表中的数据,但并不删除表本身;

语法:
TRUNCATE TABLE

示例:清除表数据
truncate table ywwd_vote;
Query OK, 0 rows affected (0.02 sec)

验证
select * from ywwd_vote\G;
Empty set (0.00 sec)

还也可以使用delete 语句
delete from table ywwd_vote;

两条语句的区别
DELETE和TRUNCATE TABLE的最大区别是DELETE可以通过WHERE语句选择要删除的记录。但执行得速度不快。而且还可以返回被删除的记录数。而TRUNCATE TABLE无法删除指定的记录,而且不能返回被删除的记录。但它执行得非常快。

参考MySQL DELETE语句和TRUNCATE TABLE语句的区别

#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2017-05-19 12:43
truncate 脚本 批量清除表数据
功能: 批量清除表数据
注意: 数据不可恢复,请提前备份数据。

脚本
cat truncate.sh
#!/bin/bash
#20170518 by http://ywwd.net
#script_name:truncate.sh


#variables
user='dongnan'
passwd='ywwd.net'
host='localhost'
#
while read line;do
   echo $line
   mysql -h$host -u$user -p$passwd -e "use db_name; truncate ${line};"
   sleep 2
done < table.txt

配置文件

# 表名称,每个表单独一行。
cat table.txt
account
company
省略....
#
游客

返回顶部