我的psql无法打开。奇怪的是。我通过使用psql -U postgres
进行日志记录创建了一个用户“Ben”,它允许我打开PSQL并运行命令
CREATE USER Ben WITH PASSWORD '123';
我这样做之后就说ERROR: role "ben" already exists
但是当我运行psql时它会抛出psql: FATAL: role "Ben" does not exist
答案 0 :(得分:1)
当您发出如下SQL命令时:
CREATE USER Ben WITH PASSWORD '123';
此命令中的标识符(例如用户名)将折叠为小写。所以用户实际上被创建为'ben'。
发出shell命令时,例如:
psql -U Ben mydatabase
然后保留标识符大小写,使其区分大小写。
如果你真的希望用户名大写,那么在SQL中加倍引用它,如下所示:
CREATE USER "Ben" WITH PASSWORD '123';
否则全部小写并连接:
psql -U ben mydatabase
请参阅手册
中的Identifiers & Keywords