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

posted @   openGaussbaby  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示