TRUNCATE、DELETE、DROP的区别

Truncate、delete、drop区别

一、Truncate使用

truncate user_table; 清空表的数据,但不破坏表结构

二、delete使用

delete from user_table where id = 1; 删除指定数据,要跟where条件(不过业务中大多是逻辑删除,并非物理删除)

三、drop使用(删库跑路)

drop table user_table; # 删表,没一点
drop database test_platform; # 删库,全没

补充

速度上,drop> truncate > delete
对于业务上的需求,我们删除一般会提前定义一个字段为del,通过改变他的值来模拟删除操作
目的就是不展示给用户看,其实他还在库中

  • 挽救程度:
    如果进行误操作的话,delete是有机会进行恢复的:也只有delete操作会进入事务,并可以回滚,truncate和drop就真的只能跑路了
    select * from user_table;
    start transaction;    # 开启事务 
    delete from user_table where id = 1;
    rollback;  # 回滚事务
    commit;  # 提交事务(提交事务后不可以回滚)
    
posted @ 2023-03-04 17:58  梁上尘  阅读(52)  评论(0编辑  收藏  举报