我有一个数据库rndb并创建了一个新表myname_record,它默认使用所有者“postgres”创建。在我的程序中,我应该将所有者更改为“rndb”,但我错过了它。现在我需要在控制台中执行此操作,因此我使用命令登录
psql=>psql -Urndb
然后使用以下查询更改所有者
rndb=>ALTER TABLE public.myname_record OWNER to rndb;
但是它说你必须是所有者来做这个改变。我可以理解,因为我通过rndb登录它给出了这个错误。但是如何实际改变这一点。
答案 0 :(得分:28)
选择具有超级用户权限的角色,并尝试更改表的所有者。
ALTER TABLE public.myname_record OWNER TO rndb;
答案 1 :(得分:2)
您必须以当前表所有者身份进行连接,而不是要将表所有权更改为的用户。自那以后postgres
:
psql -U postgres
或
sudo -u postgres psql
根据需要。
(此外,超级用户可以随时将表所有权从任何内容更改为任何内容)。