>> The insert statement that is producing this error does not
>> include a value for the pkey field in question (this field is of type
>> SERIAL). I imagine that somehow the counter associated with this
>> field got messed up, so that it is mistakenly generating a value that
>> has been used already. How can I straighten it out?
TL> You need to do something like
TL> select setval('seq-name', (select max(col) + 1 from table));
TL> regards, tom lane
The setval function updates the last_value field of the sequence table. You don't need the "+ 1".
select setval('seq-name', (select max(col) from table));
DAQ