以下是 TRUNCATE 命令的一般语法:
TRUNCATE [ TABLE ] table_name [ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ];
其中:
- table_name 是要截断(即删除所有行)的表的名称。
- RESTART IDENTITY 将序列重新设置为初始值。
- CONTINUE IDENTITY 保留序列的当前值。
- CASCADE 将截断操作应用于所有依赖于目标表的外键关系。
- RESTRICT 会阻止截断操作,除非没有其他表依赖于目标表。
以下是一些 TRUNCATE 命令的示例:
-- 截断名为 "my_table" 的表,并重置序列
TRUNCATE my_table RESTART IDENTITY;
-- 截断名为 "another_table" 的表,保留序列的当前值
TRUNCATE another_table CONTINUE IDENTITY;
需要注意的是,TRUNCATE 操作是不可逆的,它会立即删除表中的所有数据。因此,在使用 TRUNCATE 前,请确保你真的希望删除表中的所有数据。
另外,TRUNCATE 操作是一个DDL(数据定义语言)操作,它会自动提交当前事务。因此,它无法在一个事务内与其他DML(数据操纵语言)语句一起使用,而且不能在事务内回滚。
转载请注明出处:http://www.zyzy.cn/article/detail/8772/PostgreSQL