Tengo un código con dos consultas mysql.
DELETE FROM my_table WHERE user_id=some_number
INSERT INTO my_table (user_id, ...) VALUES(some_number, ...)
mysql insertar después de la eliminación falla debido a "entrada duplicada"
El campo user_id es único.
En casos excepcionales, la inserción falla al reclamar una entrada duplicada. Mi primer instinto me lleva a creer que el DELETE no terminó y ahora el inserto está tratando de insertar y obtengo una entrada duplicada. es posible? ¿Cómo puedo evitar esto? ¿Podría haber una explicación diferente que se te ocurra?
Actualización: La razón por la que estoy borrando es porque quiero eliminar todos los datos que no estoy actualizando/insertando por primera vez. Además, creo que es importante señalar que la mayoría de los datos siguen siendo los mismos.
¿Es posible que sea una condición de carrera en la que dos procesos estén ejecutando esas dos declaraciones para la misma ID al mismo tiempo? –
puede estar interesado en REEMPLAZAR e INSERTAR ... EN LAS ACTUALIZACIONES DUPLICADAS DE ACTUALIZACIÓN DE LLAVE –
¿es posible que DELETE falle? ¿hay algún control después de su ejecución? – ascanio