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; # 提交事务(提交事务后不可以回滚)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)