Voy a dar un ejemplo falso y tal vez sin sentido con el sólo fin de poder plantear mi duda.
1) tengo
Código:
si yo hago una transaccion(con el aislamiento por defecto de lectura cursada) y dentro untable ejemplo ( codigo PK; .... ... )
Código:
bueno este select for update impediria que otras transacciones editen la fila con codigo 1 hasta que termine la transaccion.select * from ejemplo where codigo=1 for update
Ahora ¿que pasa si no encuentra una fila con codigo=1?
Pasa esto:
1) Ninguna otra transacción podrá insertar una fila con codigo 1, ni tampoco podrá
cambiarle a otra fila el código al valor 1
ó pasa esto:
2) puede insertar filas con codigo 1 y también puede cambiarle el codigo a otra fila para dejarselo en 1.