Главная / Справочник ошибок / PostgreSQL
Запрос обращается к столбцу, которого нет
ERROR: column ... does not exist
«ERROR: column "..." does not exist» (SQLSTATE 42703) в PostgreSQL: столбца нет в таблице, имя записано с другим регистром или строка взята в двойные кавычки вместо одинарных. Как проверить имя столбца.
Что это значит
PostgreSQL не нашёл столбец с таким именем в таблицах запроса. Причины:
- строковое значение записано в двойных кавычках:
WHERE status = "Active"PostgreSQL читает как сравнение со столбцомActive; строки пишутся в одинарных кавычках; - столбец создан с заглавными буквами в кавычках, а запрос пишет имя без кавычек, и PostgreSQL ищет его в нижнем регистре;
- столбца нет в этой версии схемы: запрос написан под другую версию приложения;
- псевдоним из
SELECTиспользуется вWHERE, где он ещё не виден.
Как проверить
SELECT column_name FROM information_schema.columns
WHERE table_name = 'documents' ORDER BY ordinal_position;
Список покажет точные имена столбцов с учётом регистра.
Что сделать
- Строковые значения писать в одинарных кавычках.
- Имена с заглавными буквами писать в двойных кавычках ровно так, как они созданы.
- Если запрос из отчёта или скрипта под другую версию, привести его к текущей схеме.
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать