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.


Francisco Olarte.

-
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