PostgreSQL 清空表 TRUNCATE TABLE
概述
TRUNCATE TABLE语句用于快速删除表中的所有数据,但保留表结构。相比DELETE,TRUNCATE更快速高效,特别适用于清空大型表。
TRUNCATE语句
基本语法
简单示例
完整语法
选项说明
重置序列
级联清空
清空多个表
TRUNCATE vs DELETE
性能对比
使用场景
实际应用示例
清空测试数据
数据重置脚本
定期清理日志表
触发器行为
默认不触发行级触发器
外键约束处理
有外键引用时
注意事项
- 权限要求:需要表的TRUNCATE权限或所有者权限
- 锁定:TRUNCATE会获取ACCESS EXCLUSIVE锁
- MVCC:TRUNCATE是MVCC安全的
- 分区表:可以TRUNCATE单个分区
- 复制:在逻辑复制中,TRUNCATE会被复制