PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Por que o item de sequência do Postgres sobe mesmo se a criação do objeto falhar?


Sim, este é o comportamento esperado. Ver documentos :

Observe que nextval normalmente é definido como um valor padrão para uma coluna de incremento automático/serial.

Tente também imaginar o quão difícil e ineficiente seria se nextval fossem reverter. Essencialmente, você teria que bloquear todos os clientes em nextval até que toda a transação (aquela que adquiriu o bloqueio) seja processada. Nesse caso, esqueça as inserções simultâneas.

Como o quê? O problema no seu caso foi que alguém especificou manualmente um valor para uma coluna de incremento automático. Você nunca deve fazer isso a menos que seja um samurai. :)