Могу ли я изменить сообщение об ошибке, выданное для дубликата ключа в PostgreSQL? - PullRequest
0 голосов
/ 27 мая 2019

У меня есть хранимая процедура, которая в основном вставляется в таблицу.Когда первичный ключ дублируется, он выдает ошибку

duplicate key value violates unique constraint

, которую я улавливаю в своем коде и отображаю в моем пользовательском интерфейсе.

Есть ли способ изменить содержимое этой ошибки на что-то настроенное?Я знаю, что могу использовать триггер и RAISE настроенное сообщение.Я просто хочу знать, есть ли альтернатива.

1 Ответ

0 голосов
/ 27 мая 2019

Я бы написал функцию, которая вставляет строку. Если таблица называется mytab:

CREATE FUNCTION insert_mytab(p_row mytab) RETURNS void
   LANGUAGE plpgsql AS
$$BEGIN
   INSERT INTO mytab SELECT (p_row).*;
EXCEPTION
   WHEN unique_violation THEN
      RAISE EXCEPTION 'don''t tickle me';
END;$$;

Я не думаю, что есть принципиально иной способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...