This is a discussion on Problems with unique restrictions within the Pgsql General forums, part of the PostgreSQL category; --> Hi all I have a PL/PGSQL conversion procedure that reads a "source table" and then inserts tuples into several ...
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hi all I have a PL/PGSQL conversion procedure that reads a "source table" and then inserts tuples into several related tables. Recently I upgraded from 8.1 to 8.2.0, then to 8.2.1. With 8.1 everything worked fine. Now since I upgraded to 8.2 I have problems inserting data into tables that have unique indexes. Ugly enough, I get the message 'duplicate key violates unique constraint' when inserting the very first record into a table. This happens everytime when the new tuple references another tuple that has been inserted just before this one in the same transaction. Putting a "SET CONSTRAINTS ALL DEFERRED" in my procedure does not help. To me it looks that something with referential integrity checking goes wrong, but in this case the error message would be misleading. Is there any known change/problem in this area? If not, I will try to strip down my procedure to something simple that documents my problems. Regards --Marcel ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq |
| ||||
| "Marcel Gsteiger" <Marcel.Gsteiger@milprog.ch> writes: > Now since I upgraded to 8.2 I have problems inserting data into tables that have unique indexes. Ugly enough, I get the message 'duplicate key violates unique constraint' when inserting the very first record into a table. This happens everytime when the new tuple references another tuple that has been inserted just before this one in the same transaction. > Putting a "SET CONSTRAINTS ALL DEFERRED" in my procedure does not help. > To me it looks that something with referential integrity checking goes wrong, but in this case the error message would be misleading. RI would not have anything to do with a duplicate-key error. Do you have any SERIAL-type columns in these tables? My first thought is of a sequence that hasn't been updated to be above the existing ID values. It's fairly easy to get into such a state if you do anything but a plain vanilla dump-all-and-reload-all update process ... regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq |