> Pedro:
>
> 2017-04-05 16:22 GMT+02:00 Pedro PG <pedr...@outlook.com>:
>> Lo que deseo es agregar una restriccion CHECK que solo permita modificar
>> datos de la tupla si y solo si liquidado es NULL.
>
> Igual estoy un poco oxidado, pero las restricciones check lo que hacen
> es comprobar un juego de valores de la tupla, no miran si vienen de
> update o de lo que sea.
>
>> 1) Cuando se inserta un registro el campo liquidado siempre sera NULL
>> (esto
>> es correcto).
>> 2) Desde un procedimiento externo actualizare liquidado (esto tambien es
>> correcto).
>> 3) Si deseo actualizar el registro, solo debe permitirme si el campo
>> liquidado es NULL (aqui mi problema).
>
> Probablemente puedes hacer eso con un trigger. De todas formas, salvo
> que estes haciendo el control con roles y mucho cuidado, porque no
> pones un 'where liquidado=null' extra en los updates? Tambien podrias
> probar con un "create rule x on update to table where OLD.liquidado is
> not null instead do nothing' o algo asi, pero te puede dar problemas
> si quieres revertir una fila a liquidado=null. Al fin y al cabo, si
> alguien puede cambiar liquidado a null probablemente pueda hacer
> not-null->null->update->null.

Yo Usaría UPSERT

-- 
Saludos,
Gilberto Castillo
ETECSA, La Habana, Cuba


-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a