P0001: raise_exception
PostgreSQLЧто это значит?
Функция или триггер PL/pgSQL намеренно вызвали ошибку с помощью RAISE EXCEPTION. Эту ошибку выдаёт не ядро базы данных, а код бизнес-правил, написанный вами (или библиотекой).
Почему возникает?
Когда бизнес-логика не проходит проверку, разработчик вызвал RAISE EXCEPTION 'message' USING ERRCODE = ...;. Например, триггер выдаёт пользовательскую ошибку, чтобы заблокировать недопустимое обновление или обеспечить правило согласованности.
Как исправить
Сообщение об ошибке и поля HINT/DETAIL (если есть) объясняют, что отклонила функция; выполните бизнес-правило соответствующим образом. Чтобы найти источник, изучите код соответствующей функции/триггера (операторы RAISE). Если нужен конкретный SQLSTATE, назначьте осмысленный код через RAISE ... USING ERRCODE вместо общего P0001, чтобы приложение могло его различать.