Экранирование ключевых слов-подобных имен столбцов в Postgres
Если столбец в таблице Postgres имеет имя year
, как должен выглядеть INSERT
запрос для установки значения для этого столбца?
например:INSERT INTO table (id, name, year) VALUES ( ... );
выдает ошибку возле год слово.
1 ответ:
просто заключите
year
в двойных кавычках, чтобы остановить его интерпретацию как ключевое слово:INSERT INTO table (id, name, "year") VALUES ( ... );
С документация:
существует второй вид идентификатора: идентификатор с разделителями или цитируемый идентификатор. Он формируется путем включения произвольной последовательности символы в двойных кавычках ("). Идентификатор с разделителями всегда является идентификатор, а не ключевое слово. Таким образом, "select" может использоваться для ссылки на a столбец или таблица с именем "select", в то время как без кавычек select будет взято в качестве ключевого слова и поэтому вызовет ошибку синтаксического анализа, когда используется там, где ожидается имя таблицы или столбца.