Привет всем!
У меня следующая проблема:
Делаю некую функцию для вставки значений в таблицу, в таблице есть первичный ключ.
При вызове функции со значением ключа, который уже есть в таблице получаю сообщение
ERROR: duplicate KEY value violates UNIQUE constraint "test_pkey" DETAIL: KEY (n)=(2) already EXISTS.
далее добавляю в функцию раздел исключений:
EXCEPTION WHEN others THEN RAISE LOG 'WARNING! Error! %', SQLERRM; RETURN false;
теперь при вызове получаю сообщение об ошибке в лог-файле, но сообщение содержит только
WARNING! Error! duplicate KEY value violates UNIQUE constraint "test_pkey"
Вопрос :
как перехватить
DETAIL: KEY (n)=(2) already EXISTS.
В доках и на форумах не могу найти
Единственное, что я нашёл в гугле
http://postgresql.1045698.n5.nabble.com/Error-details-in-sql-and-plpgsql...
Там же с датой Jun 22, 2011 написано, что:
"Patch for access to hint, detail, context is in process this commitfest. "
Таким образом, я делаю вывод, что пока что детали можно получить только в программе на языке C, а для SQL уже написан патч, но он ещё в процессе принятия в апстрим.