我对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
答案 0 :(得分:1)
有许多事情可能导致命令无法正常终止。我相信这个答案也会对其他人有所帮助。这可能看起来过于局部化了,但我听说过这对初学者来说是值得写的。
一般来说,像CREATE SCHEMA或DROP SCHEMA这样的实用程序语句将在psql中返回一些内容,无论是错误还是对已完成内容的描述。如果没有发生,那么事情是不对的。首先要做的是查看提示。
PostgreSQL中的提示符采用以下形式:[dbname] [line-status] [is-superuser]
因此,对于新行,数据库mydb,nonsuperuser,提示符如下所示:
mydb=>
如果我是超级用户,我会:
mydb=#
现在要查看的关键字符是=
所在的字符。各种符号都有特殊含义:
=
换行(准备新输入)-
从上一行继续。你忘记了分号吗?(
括号中。你的括号是不平衡的。$
在美元报价栏中。这些就像$quote$string literal$quote$
'
在单引号字符串文字块"
在双引号标识符可能还有其他一些,但这些是最常见的。除了=
和-
之外,它们通常都是不言自明的。