Search Postgresql Archives

Re: inserts failed because of primary key conflict, weird sequence issue. what could cause a reset?

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

 



On Tue, 2017-12-12 at 18:10 -0500, jonathan vanasco wrote:
> I have table where the primary key is a sequence.  I was getting a lot of errors on insertions,
> and noticed the current value was around 65k, but the max id in the database was around 160k.
> everything works now that i've restarted it, but I can't find any record of a
> restart sequence accidentally being put in.
> 
> the only thing I can think of, is the sequence went up several hundred billion and restarted
> from 0 when a drive crashed. but that seems incredibly unlikely given the last known actual max id.
> 
> does anyone have an idea what could cause this?  pg 9.6.6 on ubuntu

There are only 2 ways:
Either rows were inserted with explizit values for the serial column,
or the sequence counter was reset.

The latter is hard to observe in the log, since it will only be logged
when all SELECT statements are logged.

One idea to prevent that is to revoke the UPDATE privilege on the sequence.
You can revoke that privilege from the owner as well.  Nothing keeps the
owner from granting the privilege to himself again, but until that is done,
every attempt to reset the sequence will lead to an error.

Yours,
Laurenz Albe




[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