sql >> Base de Datos >  >> RDS >> Mysql

MySQL atomic insert-if-not-exists con autoincremento estable

La pregunta es realmente sobre cómo normalizar los datos cuando espera que haya duplicados. Y luego evite las identificaciones "quemadas".

http://mysql.rjweb.org/doc.php/staging_table#normalization analiza un proceso de 2 pasos y está dirigido a actualizaciones masivas debido a la incorporación de filas a alta velocidad. Degenera a una sola fila, pero aún requiere los 2 pasos.

Paso 1 INSERTs cualquier nuevo filas, creando nuevas identificaciones auto_inc.

El paso 2 retira los id en masa.

Tenga en cuenta que el trabajo se realiza mejor con autocommit=ON y fuera de la transacción principal que está cargando los datos. Esto evita una causa adicional para quemar identificaciones, a saber, posibles reversiones.