0

我在 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
4

1 回答 1

1

有许多事情会导致命令无法正确终止。我相信这个答案也会对其他人有所帮助。这可能看起来过于本地化,但我听说它发生在足够多的初学者身上,值得写下来。

一般来说,像 CREATE SCHEMA 或 DROP SCHEMA 这样的实用程序语句将在 psql 中返回一些内容,无论是错误还是对所做操作的描述。如果这没有发生,那是不对的。首先要做的是查看提示。

PostgreSQL 中的提示形式为:[dbname][line-status][is-superuser]

因此,对于一个新行,数据库 mydb,非超级用户,提示符如下所示: mydb=>

如果我是超级用户,我会得到:

mydb=#

现在要查看的关键字符是 the 所在的字符=。各种符号有特殊含义:

  • =新行(准备好新的输入)
  • -从上一行继续。你忘记分号了吗?
  • (在括号中。你的括号不平衡。
  • $在美元报价块中。这些就像$quote$string literal$quote$
  • '在单引号字符串文字块内
  • "在双引号标识符内

可能还有其他一些,但这些是最常见的。通常除了=and -,它们是不言自明的。

于 2013-06-05T14:33:40.387 回答