我们在将 system_catalog 表移动到非默认表空间时遇到错误(意味着在那些未分配为 test
数据库默认表空间的表空间中
例如:
test=# select schemaname,tablename,tablespace,tableowner from pg_tables where schemaname='pg_catalog' and tablename='pg_attribute';
schemaname | tablename | tablespace | tableowner
------------+--------------+------------+------------
pg_catalog | pg_attribute | tbs1 | pginst13
(1 row)
test=# ALTER TABLE pg_catalog.pg_attribute set tablespace pg_default;
ERROR: permission denied: "pg_attribute" is a system catalog
我无法在文档中找到任何表明我们无法在上面做的信息。
谢谢你的帮助。
要将数据库的目录表移动到另一个表空间,请将数据库移动到该表空间:
如果要移动单个目录表,则必须更改
allow_system_table_mods
为on
. 然后你应该可以ALTER TABLE
在目录上使用。但是,我认为这不是一个好主意。首先,我没有看到任何好处。其次,当您升级 PostgreSQL 时,更改将丢失,最后,文档
allow_system_table_mods
明确警告您: