SQL中的drop、delete、truncate都表示删除,但是三者有一些差别
1.delete和 truncate 只删除表的数据不删除表的结构,drop 删除表结构;
2.一般来讲,删除整个表,使用 drop,删除表的部分数据使用 delete,保留表结构删除表的全部数据使用 truncate。
3.delete语句是DML(数据操作语言),这个操作会放到rollback segement 中,事务提交之后才生效;
4.truncate,drop 是DDL(数据定义语言), 操作立即生效,原数据不放到rollback segment中,不能回滚.
5.truncate 是会重置自增值,相当于自增列会被置为初始值,又重新从 1 开始记录,而不是接着原来的值。而 delete 删除以后, 自增值仍然会继续累加。
7.truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete 高的原因;