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