| From: | uno dos <refreegrata(at)yahoo(dot)com> | 
|---|---|
| To: | pgsql-es-ayuda(at)postgresql(dot)org | 
| Subject: | duda con select for update | 
| Date: | 2009-06-18 21:26:39 | 
| Message-ID: | 192097.91647.qm@web38408.mail.mud.yahoo.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
Yo trabajo con postgres 8.2.
Voy a dar un ejemplo falso y tal vez sin sentido con el sólo fin de poder plantear mi duda.
1) tengo :
   table ejemplo
   (
    codigo PK;
    ....
    ...
  )
si yo hago una transaccion(con el aislamiento por defecto) y dentro un
select * from ejemplo where codigo=1 for update
bueno este select for update impediria que otras transacciones editen la fila con codigo 1 hasta que termine la transaccion.
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.
Bueno, espero puedan ayudarme
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Emanuel Calvo Franco | 2009-06-18 21:37:24 | Re: duda con select for update | 
| Previous Message | suso | 2009-06-18 18:42:29 | Re: Bloqueo en registro-tabla |