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

¿El error de clave duplicada de MySQL provoca un bloqueo compartido establecido en el registro de índice duplicado?

.1. Requiere un bloqueo en la entrada existente para que los intentos posteriores de insertar un registro duplicado fallen consistentemente:

-- Transaction A
BEGIN TRANSACTION;
INSERT INTO mytable VALUE(1); -- fails as "duplicate"

-- Transaction B
BEGIN;
DELETE FROM mytable WHERE field = 1; -- must be put on hold, see below

-- Transaction A
-- transaction is still in progress
INSERT INTO mytable VALUE(1); -- must fail to stay consistent with the previous attempt

.2. Sí, y sí :