我正在使用PostgreSQL 9.5.19。
我想更改某些表的所有者。所有这些表都位于my_db
模式的同一数据库public
中。
我已阅读帖子Modify OWNER on all tables simultaneously in PostgreSQL。
由于此帖子,该操作成功但部分成功。
该表的大部分由postgres
用户拥有,而不是new_user
用户。
我尝试手动更改所有者,但失败。
答案 0 :(得分:0)
如果您是超级用户,则可以更改postgres
拥有的表的所有权。
但是您将无法REASSIGN OWNED
,因为postgres
必须拥有系统对象。
也许您可以使用psql
的{{1}}:
\gexec
您可以填写适当的SELECT format('ALTER TABLE %I SET OWNER = willi;', table_name)
FROM information_schema.tables
WHERE ... \gexec
条件。