32

我正在尝试运行查询以更新用户密码。

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

但因为-它给了我这样的错误,

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

任何人都可以在上面遮光吗?

4

3 回答 3

46

我已经在我的系统中重现了这个问题,

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 查询,请参阅postgres-#这就是它在 alter 时出错的原因

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
于 2013-09-06T12:24:38.640 回答
23

用双引号括起来

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

请注意,您必须使用与使用双引号创建用户时相同的大小写。假设您创建了,"Dell-Sys"那么每当您引用该用户时,您都必须发出完全相同的问题。

我认为你做的最好的事情是删除该用户并在没有非法标识符字符和双引号的情况下重新创建,这样你以后可以在任何你想要的情况下引用它。

于 2013-09-06T11:19:22.403 回答
0
于 2020-04-27T17:32:41.393 回答