sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Por qué el elemento de secuencia de Postgres aumenta incluso si falla la creación del objeto?

Sí, este es el comportamiento esperado. Ver documentos :

Tenga en cuenta que nextval normalmente se establece como un valor predeterminado para una columna de incremento automático/serie.

También trate de imaginar cuán difícil e ineficiente sería si nextval iban a retroceder. Básicamente, tendría que bloquear a todos los clientes en nextval hasta que se procese toda la transacción (la que adquirió el candado). En ese caso, olvídate de las inserciones concurrentes.

¿Cómo qué? El problema en su caso fue que alguien especificó manualmente un valor para una columna de incremento automático. Nunca deberías hacer eso a menos que seas un samurai. :)