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 @   梁上尘  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示