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

inserimento atomico MySQL se non esiste con autoincremento stabile

La domanda riguarda davvero come normalizzare i dati quando si prevede che ci siano duplicati. E poi evita di "bruciare" gli ID.

http://mysql.rjweb.org/doc.php/staging_table#normalization discute un processo in 2 fasi ed è finalizzato agli aggiornamenti di massa dovuti all'importazione ad alta velocità di righe. Degenera in una singola riga, ma richiede comunque i 2 passaggi.

Passaggio 1 INSERTs qualsiasi nuovo righe, creando nuovi ID auto_inc.

Il passaggio 2 estrae gli ID in blocco.

Si noti che il lavoro viene svolto al meglio con autocommit=ON e al di fuori della transazione principale che sta caricando i dati. Ciò evita una causa aggiuntiva per la masterizzazione di ID, ovvero potenziali rollback.