Mysql
 sql >> Database >  >> RDS >> Mysql

evitando di inserire più ID simultanei in mysql

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 .