Re: restriccion check

From: Francisco Olarte <folarte(at)peoplecall(dot)com>
To: Pedro PG <pedroPG(at)outlook(dot)com>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: restriccion check
Date: 2017-04-05 14:43:02
Message-ID: CA+bJJbzRfruZEsSkU1fPR_iktAs1ugBUfM4krgkp1W7QD9oHqg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Pedro:

2017-04-05 16:22 GMT+02:00 Pedro PG <pedroPG(at)outlook(dot)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(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gilberto Castillo 2017-04-05 14:46:57 Re: [MASSMAIL]Re: restriccion check
Previous Message Pedro PG 2017-04-05 14:22:48 restriccion check