PostgreSQL删除清空表,truncate、delete、drop

主题:删除表时,如果要释放空间,需要使用TRUNCATE。

一、TRUNCATE

语法:TRUNCATE TABLE table_name;

示例:

sql 复制代码
TRUNCATE TABLE gd_4528_2020 

二、delete和drop

sql 复制代码
delete from dltb_350623_2021 where id<>158
sql 复制代码
DROP TABLE demo_contacts

三、三者比较

1、TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。

使用TRUNCATE删除后,postgre的占用空间将被释放:

2、truncate与drop是DDL语句,执行后无法回滚;delete是DML语句,可回滚。

3、truncate只能作用于表;delete,drop可作用于表、视图等。

4、truncate会清空表中的所有行,且不能带where,但表结构及其约束、索引等保持不变;drop会删除表的结构及其所依赖的约束、索引等。

5、truncate会重置表的自增值;delete不会。

6、truncate不会激活与表有关的删除触发器;delete可以。

7、truncate后会使表和索引所占用的空间会恢复到初始大小;delete操作不会减少表或索引所占用的空间,drop语句将表所占用的空间全释放掉。

相关推荐
LG.YDX23 分钟前
MySQL:13.用户管理
数据库·mysql
晓柏31 分钟前
常用数据库备份与恢复
数据库
二胖_备份管理员1 小时前
ORACLE数据库备份入门:第四部分:2-备份场景举例
数据库·oracle·备份·备份场景
聪明的墨菲特i2 小时前
SQL进阶知识:六、动态SQL
数据库·sql·sql注入·动态sql·prepare·execute
PingCAP2 小时前
APTSell x TiDB AutoFlow:AI 数字员工,助力销售业绩持续增长
数据库
PingCAP2 小时前
从企业数智化四阶段解读 TiDB 场景价值
数据库
Haoea!2 小时前
java-mybatis01
java·数据库·oracle
zandy10112 小时前
衡石科技:HENGSHI SENSE 数据权限解决方案
java·数据库·科技
爱的叹息2 小时前
数据库sql执行报错:non-grouping field xxx is used in HAVING clause错误详解
数据库·sql·oracle
PingCAP2 小时前
PingCAP“一号员工”唐刘:回顾我与 TiDB 的十年成长之旅
数据库·tidb