> 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