Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Colunas de incremento automático do MySQL em TRANSACTION, COMMIT e ROLLBACK


Não, os mecanismos de incremento automático devem funcionam fora do escopo das transações, pois outro usuário pode estar inserindo na mesma tabela antes de você concluir sua transação. A transação do outro usuário deve ser capaz de alocar o próximo valor, antes de saber se sua transação está usando o valor que você acabou de alocar.

Re seu comentário:Se posso dizer mais claramente, qualquer alteração no escopo de uma transação pode ser revertida. O contador de incremento automático não é revertido, portanto, não obedece à atomicidade de transações. Nem obedece ao isolamento porque outra transação obtém o próximo valor mesmo que sua transação ainda não tenha sido confirmada.

A maneira como o incremento automático funciona significa que, às vezes, se você inserir algumas linhas e depois reverter sua transação, os valores alocados com o incremento automático serão perdidos para sempre!

Mas isso está bem. Os valores da chave primária devem ser exclusivos, mas não precisam ser consecutivos. Em outras palavras, eles não são números de linha e você não deve usá-los assim. Portanto, você nunca precisará diminuir os valores criados pelo incremento automático.