Re: Check constraint failure messages

Поиск
Список
Период
Сортировка
От Ron
Тема Re: Check constraint failure messages
Дата
Msg-id ad56e238-6186-1a04-4e9c-9c1fce8e76d9@gmail.com
обсуждение исходный текст
Ответ на Re: Check constraint failure messages  (Miles Elam <miles.elam@productops.com>)
Ответы Re: Check constraint failure messages  (Miles Elam <miles.elam@productops.com>)
Re: Check constraint failure messages  (zim <zimtigerclaw@outlook.com>)
Список pgsql-general
On 4/6/21 3:50 PM, Miles Elam wrote:
On Tue, Apr 6, 2021 at 1:03 PM Ron <ronljohnsonjr@gmail.com> wrote:
On 4/6/21 2:40 PM, Miles Elam wrote:
I've got a domain that validates email addresses. When inserting a bunch of entries I simply get the error message

ERROR: value for domain po.email violates check constraint "email_check" SQL state: 23514

When inserting 1000+ entries in a batch, finding the exact entry with the problem is noticeably harder than with other error types. For example when a column should be a uuid but you pass in 'Mary had a little lamb', the error message tells you what the invalid value is as well as the column name you're trying to put it into.

Are there any quick hacks floating around out there to solve or at least mitigate this?

Is it a deferred constraint?
 
Plain ole domain CHECK constraint.

CREATE DOMAIN po.email AS varchar
  CHECK (VALUE IS NULL OR (po.length_in(VALUE, 1, 254) AND NOT po.email_expanded(VALUE) IS NULL));

where "po" is another schema, po.length_in(...) is an IMMUTABLE range check, and po.email_expanded(...) is a function returning a record. Same behavior happens if I remove the functions and define the check constraint in place. The only info returned in a bulk insert is the name of the violated check constraint, aka email_check.

The blunt force answer is to not use bulk inserts.  Try COPY; it's good at saying which record throws an error.

--
Angular momentum makes the world go 'round.

В списке pgsql-general по дате отправления:

Предыдущее
От: Miles Elam
Дата:
Сообщение: Re: Check constraint failure messages
Следующее
От: Miles Elam
Дата:
Сообщение: Re: Check constraint failure messages