SQL 中 TRUNCATE 和 DELETE 有什么区别?
What is the difference between TRUNCATE and DELETE in SQL?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: Databases
标签: TRUNCATE, DELETE, Rollback
参考答案摘要
答案 DELETE 按条件删除行(可用 WHERE),通常逐行记录日志,支持回滚;TRUNCATE 通常用于快速清空整表数据(一般不带 WHERE),操作更接近重置数据页/高水位线,速度更快但回滚能力取决于数据库实现与事务设置。两者对触发器、外键约束的影响也可能不同,需要结合具体 DB 规则判断。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。