我正在尝试使用运行查询以更新用户密码。
alter user dell-sys with password 'Pass@133';
但由于-,它给了我错误,
-
ERROR: syntax error at or near "-" LINE 1: alter user dell-sys with password 'Pass@133'; ^
谁能给它罩上一盏灯?
bvn4nwqk1#
我已经在我的系统里重现了这个问题,
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-#
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
2sbarzqh2#
用双引号括起来
alter user "dell-sys" with password 'Pass@133';
请注意,您必须使用与创建用户时相同的大小写(使用双引号),假设您创建了"Dell-Sys",则无论何时引用该用户,都必须发出完全相同的大小写。我认为您最好删除该用户,然后重新创建,但不使用非法标识符字符和双引号,以便以后可以在任何情况下引用它。
"Dell-Sys"
iecba09b3#
我试图将一个特定表的只读权限授予一个叫walters-ro的用户,所以当我运行sql命令# GRANT SELECT ON table_name TO walters-ro;---我得到以下错误..'在“-"处或其附近有语法错误这个问题的解决方案基本上是将user_name放在双引号中,因为名称之间有一个破折号(-)。
# GRANT SELECT ON table_name TO "walters-ro";
这就解决了问题。
yv5phkfx4#
我得到了类似的错误如下:错误:“)”处或其附近有语法错误第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 );
然后,错误得到解决:
CREATE TABLE
4条答案
按热度按时间bvn4nwqk1#
我已经在我的系统里重现了这个问题,
问题是
psql正在请求输入,而您再次给出了alter查询,请参见
postgres-#
,这就是alter处出现错误的原因答案和错误一样简单,
2sbarzqh2#
用双引号括起来
请注意,您必须使用与创建用户时相同的大小写(使用双引号),假设您创建了
"Dell-Sys"
,则无论何时引用该用户,都必须发出完全相同的大小写。我认为您最好删除该用户,然后重新创建,但不使用非法标识符字符和双引号,以便以后可以在任何情况下引用它。
iecba09b3#
我试图将一个特定表的只读权限授予一个叫walters-ro的用户,所以当我运行sql命令# GRANT SELECT ON table_name TO walters-ro;---我得到以下错误..'在“-"处或其附近有语法错误
这个问题的解决方案基本上是将user_name放在双引号中,因为名称之间有一个破折号(-)。
这就解决了问题。
yv5phkfx4#
我得到了类似的错误如下:
错误:“)”处或其附近有语法错误
第4行:);
因为我错误地放了一个尾随逗号,如下所示:
因此,我删除了一个尾随逗号,如下所示:
然后,错误得到解决: