MYSQL中truncate与delete的区别

delete和truncate都是删除表的操作,但还是有些许不同。
delete是一条一条删除记录的,配合事件(transaction)和回滚(rollback)可以找回数据,且自增(auto_increment)不会重置。
truncate则是直接删除整个表,再重新创建一个一模一样的新表,auto_increment会被重置,且数据无法找回。



delete配合事件和回滚找回数据的例子:
现有这么一个表:
MYSQL中truncate与delete的区别
开启事件start transaction
MYSQL中truncate与delete的区别
删除表中的所有数据
MYSQL中truncate与delete的区别
进行回滚rollback,表中的数据又重新回来了
MYSQL中truncate与delete的区别