Search Postgresql Archives

serial increments on failed insert

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ive noticed what seems to be an odd effect in psql 7.3.  It works like this:

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 7: don't forget to increase your free space map settings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux