2016-11-28 3 views
0

Мой psql не открывается. Довольно странно. Я создал пользователя «Бен» с помощью протоколирования с помощью psql -U postgres, что позволяет мне открыть Psql и я бегу командуpsql: FATAL: роль «пользователь» не существует

CREATE USER Ben WITH PASSWORD '123'; 

После того как я сделать это говорит ERROR: role "ben" already exists

Но когда я бегу Psql он бросает мне psql: FATAL: role "Ben" does not exist

+0

Дело имеет значение. Либо будьте последовательны везде и используйте строчные буквы или оберните их в двойные кавычки. – zerkms

+0

Ahhh, будет ли он разрешать, если я DROP User Ben; затем воссоздайте, как CREATE USER Ben WITH PASSWORD '123'; – Dilli

+0

Как «Бен» отличается от «Бен»? – zerkms

ответ

1

При выдаче команды SQL, как это:

CREATE USER Ben WITH PASSWORD '123'; 

идентификаторы в пределах этой команды (например, имя пользователя) складывают т o нижний регистр. Таким образом, пользователь фактически создается как «ben».

При выдаче команды оболочки, такие как:

psql -U Ben mydatabase 

, то дело идентификатор сохраняется, что делает его чувствительно к регистру.

Если вы действительно хотите, чтобы имя пользователя капитализируются, то двойные кавычки это в SQL, например:

CREATE USER "Ben" WITH PASSWORD '123'; 

В противном случае оставьте это все строчные и соединиться с:

psql -U ben mydatabase 

См: Identifiers & Keywords в руководстве

Смежные вопросы