42P02: undefined_parameter
PostgreSQLЧто это значит?
Запрос ссылается на несуществующий параметр. PostgreSQL сообщает, что указанный позиционный параметр (например, $2) не определён. Относится к классу 42 (syntax_error_or_access_rule_violation).
Почему возникает?
Ссылка на большее число параметров, чем передано, в операторе, подготовленном с помощью PREPARE (например, передаются два параметра, а используется $3); пропуски в нумерации параметров; либо неверные индексы $N в динамически склеенном SQL.
Как исправить
Убедитесь, что номера параметров соответствуют количеству передаваемых значений; проверьте, что они начинаются с $1 и идут без пропусков. Полностью определите типы параметров в операторе PREPARE: PREPARE p(int, text) AS SELECT ... WHERE a=$1 AND b=$2; Если используете ORM/драйвер, сравните количество привязанных параметров с заполнителями в запросе.