Postgresql:语法错误在“ - ”附近

时间:2013-09-06 11:18:21

标签: postgresql

我正在尝试运行查询以使用。

更新用户密码
alter user dell-sys with password 'Pass@133';

但是因为-它给了我错误,

ERROR:  syntax error at or near "-"
LINE 1: alter user dell-sys with password 'Pass@133';
                       ^

任何人都可以照亮它吗?

3 个答案:

答案 0 :(得分:22)

我在我的系统中重新生成了这个问题,

postgres=# alter user my-sys with password 'pass11';
ERROR:  syntax error at or near "-"
LINE 1: alter user my-sys with password 'pass11';
                       ^

这是问题,

psql要求输入并且您再次给出了alter query,请参阅postgres-#这就是为什么它在更改时给出错误

postgres-# alter user "my-sys" with password 'pass11';
ERROR:  syntax error at or near "alter"
LINE 2: alter user "my-sys" with password 'pass11';
        ^

解决方案就像错误一样简单,

postgres=# alter user "my-sys" with password 'pass11';
ALTER ROLE

答案 1 :(得分:8)

用双引号括起来

alter user "dell-sys" with password 'Pass@133';

请注意,您必须使用在使用双引号创建用户时使用的相同案例。假设您创建了"Dell-Sys",那么每当您引用该用户时,您都必须完全相同。

我认为您做的最好的事情就是删除该用户并重新创建没有非法标识符字符且没有双引号,以便您以后可以随时引用它。

答案 2 :(得分:0)

我试图将名为walters-ro的用户的只读权限授予特定表。因此,当我运行sql命令时#GRANT SELECT ON table_name TO walters-ro; ---我收到以下错误。.“或”附近的语法错误

解决方案基本上是将user_name放在双引号中,因为名称之间有一个破折号(-)。

(DATE_TRUNC('WEEK', CAST((CURRENT_TIMESTAMP AT TIME ZONE 'US/Eastern') AS DATE)) - interval '1 week')

那解决了这个问题。