在 Postgres 中改变分区 table 的 table 空间
Altering tablespace for partitioned table in Postgres
在我的数据库中,我在 PostgreSQL 11.2 上有一个名为 'record_partitioned' 的分区 table。
我想将其 table 空间更改为新的 table 空间 'fast_ssd' 因此所有新的 table 来自此 table 的 table 都在 'fast_ssd' table空间.
当我尝试将 tablespace 更改为 'fast_ssd'.
alter table record_partitioned set tablespace fast_ssd;
我明白了:
ALTER TABLE
但是好像什么都没发生!我这样检查 tablespace:
SELECT tablespace,tablename FROM pg_tables where tablename='record_partitioned';
输出为:
tablespace | tablename
------------+--------------------
| record_partitioned
table空间不变
无法对分区 table 执行此操作。每当您创建分区时,您都必须添加一个明确的 TABLESPACE
子句。
另一种方法是设置 default_tablespace
参数,但这也会影响所有其他 table。
在我的数据库中,我在 PostgreSQL 11.2 上有一个名为 'record_partitioned' 的分区 table。 我想将其 table 空间更改为新的 table 空间 'fast_ssd' 因此所有新的 table 来自此 table 的 table 都在 'fast_ssd' table空间.
当我尝试将 tablespace 更改为 'fast_ssd'.
alter table record_partitioned set tablespace fast_ssd;
我明白了:
ALTER TABLE
但是好像什么都没发生!我这样检查 tablespace:
SELECT tablespace,tablename FROM pg_tables where tablename='record_partitioned';
输出为:
tablespace | tablename
------------+--------------------
| record_partitioned
table空间不变
无法对分区 table 执行此操作。每当您创建分区时,您都必须添加一个明确的 TABLESPACE
子句。
另一种方法是设置 default_tablespace
参数,但这也会影响所有其他 table。