PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Il valore della chiave primaria non aumenta correttamente

Le colonne seriali che prendono il valore predefinito dalle sequenze sono mai garantito per essere senza interruzioni . Sono garantiti per essere unici e crescente (come definito) e sicura per l'uso simultaneo .
Se una transazione che ha estratto un numero dalla sequenza viene annullata, il numero viene bruciato e non viene più utilizzato ... Per documentazione:

Se vedi grandi lacune come 427 -> 4357 , allora questo indica un problema serio. O qualche altra colonna (o qualsiasi processo) sta disegnando dalla stessa sequenza, oppure hai un problema con la logica dell'applicazione, in qualche modo brucia molti ID seriali.

I candidati tipici sono i loop andati male o le transazioni che non sono mai state impegnate.