Vuoi usare una sequenza .
Due avvertimenti:
-
Il
AUTO_INCREMENT
la funzionalità descritta nell'articolo non è standard e potrebbe causare problemi di portabilità quando si passa a un database diverso. -
Se un
INSERT
viene interrotto, un numero della sequenza viene ancora consumato, quindi potresti ritrovarti con dei buchi nella sequenza. Se ciò è inaccettabile, usa una sequenza generata automaticamente per la chiave primaria (surrogata) e aggiungi una mappa separata da quella chiave al numero di sequenza "ufficiale", rafforzando l'unicità nell'indice di quella tabella.
L'alternativa è applicare UNIQUE
ness nel database, utilizzare un TRANSACTION ISOLATION LEVEL
appropriato e aggiungi la logica dell'applicazione per gestire l'errore in INSERT
.