MySql中delete与TRUNCATE的区别

全能 AI 聚合平台 免费

一站式接入主流 AI 大模型,支持对话 · 生图 · 生视频,即开即用

ChatGPT Claude Gemini Grok DeepSeek 通义千问 Ollama
AI对话 AI生图 AI视频
免费使用 →

一、delete

delete from tableName where  …

二、TRUNCATE

TRUNCATE  table tableName 

三、总结

1.一样点:都能够清除表数据,不删除表结构。

2.不同点:

delete支持按条件删除,TRUNCATE不支持。

delete 删除后自增列不会重置,而TRUNCATE会被重置。

delete不会释放空间,而TRUNCATE会释放空间。

delete 支持回滚,TRUNCATE不支持。

本质:由于delete 是数据操作语言(DML – Data Manipulation Language),操作时原数据会被放到 rollback segment中,可以被回滚;而TRUNCATE是数据定义语言(DDL – Data Definition Language),操作时不会进行存储,不能进行回滚。truncate语句实际是删除原来的表然后重新建立一个新表。

另外:drop table  tableName 会连整个表结构一起删除。

© 版权声明

相关文章

暂无评论

none
暂无评论...