Re: Bloqueo en registro-tabla

From: suso <jlcubas(at)terra(dot)es>
To: Mariano Reingart <mariano(at)nsis(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Bloqueo en registro-tabla
Date: 2009-06-15 21:59:11
Message-ID: 4A36C42F.8040107@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Mariano, como comenté en el mail despues de éste, xmin esta en cada
tabla, lo que me hace suponer que es un campo "genérico" o algo así, por
lo que me coemntas entonces es eso, cambia de valor en función de si
algún campo(el que sea) ha cambiado de valor.
Esto lo que me hace(siempre y cuando lo que digo sea correcto) es
decirme si ha cambiado o no, peor no impide que alguien lo cambie, que
es mi objetivo(y el de los medicos, según me han comentado), impedir que
alguien, o sea, mas de uno, pueda acceder a los datos, o la menos
cambiarlos, mientras ellos están trabajando, quizás no se muy correcto
esta manera de plantear el tema, es decir, el bloqueo.
El tema es que no se como hacerlo, si no es poniendo un flag en una
tabla en concreto, y com me recomendó Alvaro, que caduque(que no se cómo
puedo pasarle el tiempo de caducidad) a no ser que mediante algun
procedimiento almacenado, trigger o no sé.
Me imagino que con trabajo y algo de imaginación:)
Un saludo
Suso
> suso wrote:
>> Acabo de ver "xmin", veo que es un "campo" para cada tabla, es
>> correcto? Si es así, me supongo, no nos dice el valor anterior de
>> cada campo, sólo si en la tabla ha habido algún cambio, es asi?
>
> Si, si no me equivóco, xmin es un campo del sistema para todas las tablas.
>
> Informa el valor actual, o sea, si en un momento haces:
>
> SELECT *, xmin FROM tabla WHERE ...;
>
> xmin te va a dar un número tipo 1290349 para un registro puntual
>
> Luego, si ese registro cambia, xmin te va a dar otro número, pero para
> la próxima consulta (tenés que hacer un nuevo SELECT)
>
> O sea, antes de hacer un UPDATE haces un nuevo SELECT, si te da otro
> xmin es porque los datos se modificaron (te conviene hacerlo en la misma
> transacción el SELECT y el UPDATE para evitar inconsistencias)
>
> Sds
> Mariano
>
>
>> Un saludo
>> Suso
>>> Hola Mariano, pero no sé como poder obtener esos valores(xmin), es
>>> decir, es un simple recordset apuntando a , dónde?
>>> Ese valor es uno sólo para todos los campos de cada tabla?
>>> Gracias
>>> Un saludo
>>> Suso
>>>
>>>> suso wrote:
>>>>> Ahora mismo lo tengo "casi" como dices, es decir, tengo un campo,
>>>>> en una sola tabla, que es "la referencia/consulta" en cada
>>>>> insercion-update Lo de la fecha me parece muyyy buena idea.
>>>>>
>>>>> Aunque, por vuestros comentarios, es mejor que la descarte, y
>>>>> pruebe a comparar los datos "iniciales" preguardados, con los que
>>>>> se van a guadar, y así saber si alguien ha intentado algo, y si es
>>>>> así, darle al médico la opción de actualizar.
>>>>
>>>> No hace falta comparar todos los datos, podes usar la columna de
>>>> sistema xmin, que te da la identidad (id de transacción) de la
>>>> versión de la fila.
>>>> Si originalmente leiste la fila y luego se modificó, cuando leas
>>>> nuevamente antes de grabar el campo xmin va a tener otro valor:
>>>> http://www.postgresql.org/docs/current/interactive/ddl-system-columns.html
>>>>
>>>>
>>>>
>>>> Sds
>>>> Mariano
>>>> --
>>>> TIP 2: puedes desuscribirte de todas las listas simultáneamente
>>>> (envía "unregister TuDirecciónDeCorreo" a
>>>> majordomo(at)postgresql(dot)org)
>>>
>>> --
>>> TIP 2: puedes desuscribirte de todas las listas simultáneamente
>>> (envía "unregister TuDirecciónDeCorreo" a
>>> majordomo(at)postgresql(dot)org)
>>
>> --
>> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te
>> lo agradecerán
>
> --
> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo
> agradecerán
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mariano Reingart 2009-06-15 23:05:47 Re: Bloqueo en registro-tabla
Previous Message Mariano Reingart 2009-06-15 21:46:12 Re: Bloqueo en registro-tabla