读书人

MySQL剔除数据语句Delete和Truncate

发布时间: 2012-07-04 19:33:55 作者: rapoo

MySQL删除数据语句Delete和Truncate
在用insert into向数据库中增加数据的时候,发现如果delete某行之后id就不连续了。于是找了相关的资料:

-------------------------------------分割线---------------------------------------------
MySQL为我们提供了delete和truncate语句来删除数据。

delete 语句的定义:
经常和数据库打交道的孩子们,删除数据的时候用的大多都是 delete 语句。现在让我们来看一下 delete语句的定义。

truncate table friends;


truncate 和 delete的效率问题:
如果想要删除表的所有数据,truncate语句要比 delete 语句快。因为 truncate 删除了表,然后根据表结构重新建立它,而 delete 删除的是记录,并没有尝试去修改表。这也是为什么当向一个使用 delete 清空的表插入数据时,MySQL 会记住前面产生的AUTOINCREMENT序列,并且继续利用它对AUTOINCREMENT字段编号。而truncate删除表后,表是从1开始为autoincrement字段编号。

不过truncate命令快规快,却不像delete命令那样对事务处理是安全的。因此,如果我们想要执行truncate删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。

转自http://blog.csdn.net/BigBird2012/article/details/6340424

读书人网 >Mysql

热点推荐