Fixing sequence problems in PostgreSQL
This one’s mainly for my own future reference. The following error message in PostgreSQL:
ERROR: Cannot insert a duplicate key into unique index auth_permissions_pkey
Is caused by a table with an automatically incremented primary key (set up using the SERIAL keywords in the table creation statement) getting out of sync somehow with the sequence that tracks the next available primary key. You can re-sync the sequence with the following query:
SELECT setval('auth_permissions_id_seq',
(SELECT max(id) FROM auth_permissions));
If you don't know what the sequence name is (older versions of postgres truncate them in unusual ways), you can find out by using
\d tablein psql.Dominic Mitchell - 21st April 2004 22:58 - #