MySQL里面,delete和truncate都能清空表数据,保留表结构。但是这2个命令还是有些区别的。
二者的区别在于:即便是支持事务的环境下,delete的能回滚,truncate的回滚不了。
看下面的例子:
> use hellodb;
> select * from coc; 原始表内容如下:
##delete方式
> begin;
> delete from coc;
> rollback;
> select * from coc; 此时数据又恢复出来了
##truncate方式
> begin;
> truncate coc;
> rollback;
> select * from coc; 此时数据再也恢复不了了,如下图:
原文地址:http://lee90.blog.51cto.com/10414478/1826227