Экранирование имен столбцов в Postgres - PullRequest
116 голосов
/ 04 октября 2011

Если столбец в таблице Postgres имеет имя year, как должен выглядеть запрос INSERT для установки значения для этого столбца?

Например: INSERT INTO table (id, name, year) VALUES ( ... ); выдает ошибку около слова year .

1 Ответ

176 голосов
/ 04 октября 2011

Просто заключите year в двойные кавычки, чтобы оно не интерпретировалось как ключевое слово :

INSERT INTO table (id, name, "year") VALUES ( ... );

Из документации :

Существует второй тип идентификатора: идентификатор с разделителями или цитируемый идентификатор. Он образован путем включения произвольной последовательности символы в двойных кавычках ("). Идентификатор с разделителями всегда идентификатор, никогда не ключевое слово. Таким образом, «выбор» может быть использован для обозначения столбец или таблица с именем "select", тогда как выбор без кавычек будет в качестве ключевого слова и поэтому вызовет ошибку разбора, когда используется там, где ожидается имя таблицы или столбца.

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