Drop 、Delete、Truncate的区别是什么
Drop 、Delete、Truncate 的区别是什么?
DROP 删除表结构和数据,truncate 和 delete 只删除数据
truncate 操作,表和索引所占用的空间会恢复到初始大小;delete 操作不会减小表或索引所占用的空间;drop 操作释放表或索引的占用空间。
truncate 和 drop 是 DDL,操作立即生效,delete 是 DML,手动提交操作才生效。delete 操作可以结合 where 条件,并且删除操作会被记录到日志,后续可以回滚恢复。
一般速度上来说,drop>truncate>delete
truncate 只能对 table,delete 可以是 table 和 view
示例
MogDB=# select * from test_city;
id | city
----+-----------
1 | 上海
2 | 北京
3 | 广州
4 | 猋
5 | 巭
6 | 孬
7 | 舙
8 | 畾
9 | 皛
10 | 龘
11 | 孨
12 | 毳
13 | 雥
14 | 飍
15 | 飝
(15 rows)
MogDB=# Delete from test_city where city = '上海';
DELETE 1
MogDB=# select * from test_city;
id | city
----+-----------
2 | 北京
3 | 广州
4 | 猋
5 | 巭
6 | 孬
7 | 舙
8 | 畾
9 | 皛
10 | 龘
11 | 孨
12 | 毳
13 | 雥
14 | 飍
15 | 飝
(14 rows)
MogDB=# TRUNCATE test_city;
TRUNCATE TABLE
MogDB=# select * from test_city;
id | city
----+------
(0 rows)
MogDB=# drop table test_city;
DROP TABLE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了