我目前正忙着尝试从PostgreSQL / Postgis数据库的演示中执行一些SQL查询。但是我在查询中的某一行获得了语法。
此查询过去在其他计算机上运行,所以我在这里看不到为什么它现在不起作用的问题:
CREATE ROLE demonstratieuser NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE demonstratieadmin NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT demonstratieuser TO demonstratieadmin
GRANT ALL ON DATABASE demodatabase TO demonstratieadmin
以下行具有语法错误,更具体地说是Grant部分。
GRANT ALL ON DATABASE demodatabase TO demonstratieadmin
我该如何解决这个问题?
编辑错误代码:
ERROR: syntax error at or near "GRANT"
LINE 4: GRANT ALL ON DATABASE demodatabase TO demonstratieadmin;
^
********** Error **********
ERROR: syntax error at or near "GRANT"
SQL state: 42601
Character: 222
答案 0 :(得分:1)
这是因为您在下面的行中缺少;
分号,这是行终止符。
GRANT demonstratieuser TO demonstratieadmin
所以它应该是
CREATE ROLE demonstratieuser NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE demonstratieadmin NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT demonstratieuser TO demonstratieadmin;
GRANT ALL ON DATABASE demodatabase TO demonstratieadmin;