【发布时间】:2013-05-03 09:51:38
【问题描述】:
我在 PostgreSQL 方面的经验很少。我一直在阅读教程和文档,为了创建或删除架构,他们都说我只需要执行:
CREATE SCHEMA myschema;
DROP SCHEMA myschema;
但它不起作用。我终于偶然发现我必须使用:
CREATE SCHEMA myschema AUTHORIZATION pgsql;
DROP SCHEMA myschema RESTRICT;
我的安装是否损坏,或者我添加了一些我不应该添加的功能?
更新: 如果我使用 Mac OS X 中的 pgAdmin,它可以工作。 我没有收到任何错误或任何形式的警报。 基本上我只是像这样登录 pgsql 帐户:
su pgsql
然后
psql mydatabase
【问题讨论】:
-
很奇怪。你是如何创建
myuser的,你授予它什么权利?这真的是 PostgreSQL,还是像 Redshift/Greenplum/etc 这样的 PostgreSQL 变体?我认为您可能只是遇到了所有权问题,但由于您没有显示您运行的真实命令(考虑到拼写错误)、确切的错误消息或有关用户及其权利的任何信息,所以很难说。 -
感谢您的评论,我猜我的用户是安装过程中创建的 pgsql 用户,是的,它是来自 freebsd 的真正的 postgresql 端口。还有一个奇怪的事情,如果我使用 Mac OS X 中的 pgAdmin3,它可以完美运行,但在 psql 控制台中没有。
-
你应该打开
log_statement = 'all'看看PgAdmin3 在做什么。仍然非常非常奇怪。 “pgsql 用户”是指用户postgres吗?通常没有pgsql用户,除非 FreeBSD 端口与通常的安装特别不同。 -
等等,你刚才是不是从控制台说没有响应?不是错误吗?打赌你只是在控制台中输入命令时忘记输入分号了。
-
你说得对,我很惭愧,但我记得我用过它们。也许这个错误与 Mac OS 终端有关。
标签: postgresql schema sql-drop