truncate、delete、drop的区别
上面说过truncate与delete,drop很相似,其实这三者还是与很大的不同的,下面简单对比下三者的异同。
1、truncate与drop是DDL语句,执行后无法回滚;delete是DML语句,可回滚。
2、truncate只能作用于表;delete,drop可作用于表、视图等。
3、truncate会清空表中的所有行,但表结构及其约束、索引等保持不变;4、drop会删除表的结构及其所依赖的约束、索引等。
5、truncate会重置表的自增值;delete不会。
6、truncate不会激活与表有关的删除触发器;delete可以。
7、truncate后会使表和索引所占用的空间会恢复到初始大小;delete操作不会减少表或索引所占用的空间,drop语句将表所占用的空间全释放掉。