drop、delete 与 truncate 区别
drop、delete 与 truncate 区别
程序员朱永胜有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准
https://blog.zysicyj.top
全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java 面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001`
这三个操作都可以用于从数据库中删除数据,但它们之间有一些重要的区别:
DROP:
- DROP 操作用于删除数据库中的对象,比如表、视图、索引等。
- 使用 DROP 操作将完全删除对象及其定义,包括对象中的所有数据。
- 一旦使用 DROP 删除了对象,那么该对象的定义和数据都将被永久删除,无法恢复。
DELETE:
- DELETE 操作用于从表中删除特定的行,可以带有 WHERE 子句来指定删除的条件。
- DELETE 操作会逐行地删除满足条件的数据,同时会记录在事务日志中,可以进行回滚操作。
- DELETE 操作会触发表上的触发器,并且可以搭配 SELECT INTO 语句将删除的数据保存到另一个表中。
TRUNCATE:
- TRUNCATE 操作用于快速删除表中的所有数据,但保留表的结构。
- TRUNCATE 操作是一种 DDL 语句,它将表中的数据页释放给系统,因此在删除大量数据时,TRUNCATE 的性能通常比 DELETE 更好。
- TRUNCATE 操作不会触发表上的触发器,且无法搭配 SELECT INTO 语句将删除的数据保存到另一个表中。
总的来说,DROP 用于删除数据库对象,DELETE 用于删除表中的行,而 TRUNCATE 用于快速删除表中的所有数据。在选择使用哪种操作时,需要根据具体的需求和场景来进行权衡。