Nivel de aislamiento serializable

La serailizaci�n proporciona el nivel m�s alto de aislamiento transaccional. Cuando una transacci�n est� en el nivel serializable, la consulta s�lo ve los datos cursados antes de que la transacci�n comience y nunca ve ni datos sucios ni los cambios de transacciones concurrentes cursados durante la ejecuci�n de la transacci�n. Por lo tanto, este nivel emula la ejecuci�n de transacciones en serie, como si las transacciones fueran ejecutadas un detr�s de otra, en serie, en lugar de concurrentemente.

Si una fila devuelta por una consulta durante la ejecuci�n de una declaraci�n UPDATE (o DELETE, o SELECT FOR UPDATE) est� siendo actualizada por una transacci�n concurrente no cursada, la segunda transacci�n que trata de actualizar esta fila esperar� a que la otra transacci�n se curse o pare. En caso de que pare, la transacci�n que espera puede proceder a cambiar la fila. En el caso de una transacci�n concurrente se curse, una transacci�n serializable ser� parada con el mensaje

ERROR:  Can't serialize access due to concurrent update
    
porque una transacci�n serializable no puede modificar filas cambiadas por otras transacciones despu�s de que la transacci�n serializable haya empezado.

Nota

Tenga en cuenta que los resultados de la ejecuci�n de SELECT o INSERT (con una consulta) no se ver�n afectados por transacciones concurrentes.