截断父表但不截断子表

she*_*dog 6 postgresql partitioning truncate postgresql-9.4

我在 PostgreSQL 9.4 中有一个表,我对其进行了分区,以便对父分区的所有插入实际上都进入其中一个子分区。问题是在创建分区之前,我的父表中已经有数亿行数据。

父级和子级存在于不同的模式中:

家长:public.history_uint
孩子:partitions.history_uint_p2015_mm_dd

这是我创建分区的方式。

TRUNCATE父母如何而不是孩子?

Erw*_*ter 12

使用ONLY关键词:

TRUNCATE ONLY public.history_uint;
Run Code Online (Sandbox Code Playgroud)

手册:

如果ONLY在表名之前指定,则仅截断该表。如果ONLY未指定,则该表及其所有后代表(如果有)将被截断。可选地,*可以在表名后指定,以明确指示包含后代表。

父子关系所在的模式仅与模式上的用户权限相关。否则对 Postgres 都是一样的。