PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Primärschlüsselwert wird nicht korrekt erhöht

Serielle Spalten, die ihren Standardwert von Sequenzen nehmen, sind nie garantiert lückenlos . Sie sind garantiert einzigartig und aufsteigend (wie definiert) und sicher für die gleichzeitige Verwendung .
Wenn eine Transaktion, die eine Nummer aus der Sequenz gezogen hat, zurückgesetzt wird, wird die Nummer verbrannt und nicht erneut verwendet ... Pro Dokumentation:

Wenn Sie große Lücken wie 427 -> 4357 sehen , dann weist dies auf ein ernsthaftes Problem hin. Entweder zieht eine andere Spalte (oder ein beliebiger Prozess) aus derselben Sequenz, oder Sie haben ein Problem mit Ihrer Anwendungslogik und verbrennen irgendwie viele Seriennummern.

Typische Kandidaten sind Schleifen, die schief gelaufen sind, oder Transaktionen, die nie festgeschrieben wurden.