我正在尝试运行查询来更新用户密码。
alter user dell-sys with password 'Pass@133';
但是因为
-
它给了我这样的错误,
ERROR: syntax error at or near "-"
LINE 1: alter user dell-sys with password 'Pass@133';
^
有人可以在上面遮光吗?
我已在我的系统中重现了该问题,
postgres=# alter user my-sys with password 'pass11';
ERROR: syntax error at or near "-"
LINE 1: alter user my-sys with password 'pass11';
^
问题来了,
psql 正在要求输入,并且您再次给出了更改查询,请参阅
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
用双引号括起来
alter user "dell-sys" with password 'Pass@133';
请注意,您必须使用与使用双引号创建用户时使用的相同大小写。假设您创建了
"Dell-Sys"
,那么每当您引用该用户时,您都必须发出完全相同的信息。
我认为你最好做的就是删除该用户并重新创建,不包含非法标识符字符和双引号,这样你以后就可以在任何你想要的情况下引用它。
我试图将特定表的只读权限授予名为 walters-ro 的用户。因此,当我运行 sql 命令时 # GRANT SELECT ON table_name TO walters-ro; --- 我收到以下错误..`“-”处或附近的语法错误
此问题的解决方案基本上是将 user_name 放入双引号中,因为名称之间有破折号(-)。
# GRANT SELECT ON table_name TO "walters-ro";
问题就解决了。
我遇到了以下类似的错误:
错误:“)”处或附近有语法错误
第 4 行:);
因为我错误地加了一个逗号,如下所示:
CREATE TABLE person(
id SERIAL PRIMARY KEY,
name VARCHAR(20),
-- ↑ A trailing comma
);
所以,我删除了结尾的逗号,如下所示,然后错误就解决了:
CREATE TABLE person(
id SERIAL PRIMARY KEY,
name VARCHAR(20)
-- ↑ No trailing comma
);
如果您在 2024 年并在重置密码时遇到此问题 您所需要做的就是将密码用单引号括起来即可工作
alter user postgres with password 'Pass@133';