Избегайте столкновений между именем таблицы и ключевыми словами psql - PullRequest
0 голосов
/ 26 апреля 2020

Мне нужно создать таблицу в postgreSQL, как показано ниже, но «USER» - это ключевое слово, и я получаю ошибку.

Кстати, разве это не должно работать, так как я пишу "Пользователь" вместо "ПОЛЬЗОВАТЕЛЬ"?

CREATE TABLE User(

);

1 Ответ

1 голос
/ 26 апреля 2020

Во-первых, не используйте зарезервированные слова для идентификаторов. Достаточно просто изменить это значение на что-то вроде Users.

Во-вторых, Postgres по умолчанию настаивает на том, что идентификаторы нечувствительны к регистру, если их вводить в нижнем регистре. Итак, User и USER и user - это одно и то же - и все они конфликтуют с ключевым словом / зарезервированным словом.

Все правила об идентификаторах довольно хорошо объяснены в документация .

Вы можете обойти это, настаивая на чувствительности к регистру, избегая имени:

 CREATE TABLE "User" ( . . .

Но я категорически не одобряю это. Существует множество способов создания идентификатора без повторного использования нескольких сотен зарезервированных слов. Просто будьте более креативны в своих именах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...