pg_get_constraintdef(oid)
Допустим есть таблица users. При вставке мы получаем ошибку: ERROR: new row for relation "users"
violates check constraint "check_type". Как понять что именно не так? Можно используя OID constraint из
таблицы pg_constraint узнать какую проверку не проходим.
INSERT INTO users (name, email, type)
SELECT 'Name', 'user_email@email.ru', 5; -- ошибка constraint "check_type"
SELECT conname, oid, pg_get_constraintdef(oid)
FROM pg_constraint
WHERE conrelid = 'users'::regclass
AND conname = 'check_type';
-- пример результата
CHECK ((type = ANY (ARRAY[1, 2, 3])))