On Conflict Do nothing errors IF conflict and there is a data type length or check failure

From: "Regina Obe" <lr(at)pcorp(dot)us>
To: <pgsql-hackers(at)postgresql(dot)org>
Subject: On Conflict Do nothing errors IF conflict and there is a data type length or check failure
Date: 2016-02-17 05:34:25
Message-ID: 000e01d16944$dd519920$97f4cb60$@pcorp.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I'm guessing this is by design but just wanted to confirm that since it
makes this feature not as useful for us.

It also wasn't absolutely clear to me from the documentation.

We are running PostgreSQL 9.5.1 and if we do something like:

CREATE TABLE test(field1 varchar(5) primary key, field2 varchar(3));

INSERT INTO test(field1, field2) VALUES ('test','tes');

INSERT INTO test(field1,field2) VALUES('test', 'test')
ON CONFLICT(field1) DO NOTHING;

It triggers an error:

ERROR: value too long for type character varying(3)

I think it does this for check constraints too.

Even though the record under consideration would be thrown out anyway.

Thanks,
Regina

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tatsuo Ishii 2016-02-17 05:41:32 Re: Figures in docs
Previous Message Michael Paquier 2016-02-17 05:27:10 Fix handling of invalid sockets returned by PQsocket()