sql >> Base de Datos >  >> RDS >> Oracle

Oracle:cómo gestiona Oracle las declaraciones DML específicas de transacciones

Oracle crea un índice para hacer cumplir la restricción de clave principal (un índice único por defecto). Cuando la Sesión A inserta la primera fila, la estructura del índice se actualiza pero el cambio no se confirma. Cuando la sesión B intenta insertar la segunda fila, la operación de mantenimiento del índice observa que ya hay una entrada pendiente en el índice con esa clave en particular. La sesión B no puede adquirir el pestillo que protege la estructura del índice compartido, por lo que se bloqueará hasta que se complete la transacción de la sesión A. En ese momento, la sesión B podrá adquirir el pestillo y realizar su propia modificación en el índice (porque A retrocedió) o notará que la otra entrada se ha confirmado y generará una violación de restricción única (porque A cometió ).