1> Create a table: CREATE TABLE foo ( sval serial, uval int UNIQUE );
2> Run 3 inserts, the second of which fails because it fails the unique constraint: INSERT INTO foo VALUES (DEFAULT,1); INSERT INTO foo VALUES (DEFAULT,1); <--- This fails INSERT INTO foo VALUES (DEFAULT,2);
3> look at the table: SELECT * FROM foo; sval | uval ------+------ 1 | 1 3 | 2 <--- look here (2 rows)
Notice that even though the second insert failed, it still incremented the serial value. This seems counter intuative to the way that serial should work. Is this truly a bug, or is there a good work around?
Thanks, Dave
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend