sql >> Databasteknik >  >> RDS >> PostgreSQL

Primärt nyckelvärde ökar inte korrekt

Seriekolumner som tar deras standard från sekvenser är aldrig garanterat att vara glappfri . De är garanterat unika och stigande (enligt definitionen) och säker för samtidig användning .
Om en transaktion som har dragit ett nummer från sekvensen rullas tillbaka, bränns numret och används inte igen ... Per dokumentation:

Om du ser stora luckor som 427 -> 4357 , så indikerar detta ett allvarligt problem. Antingen ritar någon annan kolumn (eller någon process) från samma sekvens, eller så har du ett problem med din applikationslogik och bränner på något sätt många seriella ID:n.

Typiska kandidater är loopar som gått fel eller transaktioner som aldrig har begåtts.




  1. SQL-fel vid uppdatering:UPDATE-satsen kom i konflikt med FOREIGN KEY-begränsningen

  2. Kopiera raden och alla dess "barn"

  3. Vad händer om jag tappar en MySQL-kolumn utan att tappa dess index först?

  4. MySQL - Refererar till aggregerad kolumn i where-satsen