当前位置:   article > 正文

数据库中delete、truncate、drop的区别_delete truncate drop

delete truncate drop

(1)从指令类型来看:delete属于dml指令;

                                 truncate:truncate是ddl指令

                                 drop:drop是ddl指令

(2)从删除范围上来看:delete可以删除全部数据,也可以在where后面添加条件只删除部分数据;

                                     truncate只能删除表的数据

                                     drop会将删除表的结构以及表的数据全部删除

(3)执行效率:drop > truncate > delete

    1.truncate回收空间,delete在显式提交前不回收
    2.delete在删除数据之前,会在事务记录日志之中记录有关删除的操作,删除行中的数据,方便日后回滚或者利用事务日志中的记录进行数据恢复,truncate不更新事务记录日志。
    3.Delete语句在删除记录时,要先将表中的各行锁定,才能删除记录,
                 而Truncate Table不会锁定各行,只锁定表
    4.如果要删除记录的表是其他表外键指向的表,那么不能用 Truncate Table语句来删除,只能用Delete语句来删除(看级联方式而言)

    5.drop:执行后立即生效

    6. drop table table_name 立刻释放磁盘空间 ,不管是 InnoDB 和 MyISAM; drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index); 依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/598620
推荐阅读
相关标签
  

闽ICP备14008679号