Gilberto:

2017-04-05 16:46 GMT+02:00 Gilberto Castillo <gilberto.casti...@etecsa.cu>:
>> 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

Iluminanos, porfa. Hacer eso con upsert seria un truco fantastico.

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