ejecute eso que les expongo abajo, pero no me actualiza la tabla grupos al
parecer la segunda condicion IF(OLD.estado = false) THEN no esta
asumiendola, mi pregunta es como hago para especificar que cuando en la
tabla productos el campo estado de uno de ellos pase a false, en las otras
tablas donde este relacionado ese producto tbm cambien el estado a false.
Muchas gracias de antemano

El 25 de enero de 2010 09:48, Juan Carlos Medina Ruiz <[email protected]
> escribió:

> Holas mira estuve haciendo esto porque lo que yo quiero es que se actualize
> la tabla2 cuando en la tabla1 se cambie el estado a false  segun ese false
> que esta basado en un  boolean que me sirve para eliminar logicamente
>
> CREATE FUNCTION producto_eliminar_tri()
> RETURNS trigger
> AS $$
>  BEGIN
> IF(TG_OP = 'UPDATE') THEN
> IF(OLD.estado = false) THEN
>  UPDATE jmb_grupos SET estado='false' where idproducto=OLD.idproducto;
> END IF;
>  END IF;
> RETURN NULL;
> END;
>  $$
> Language 'plpgsql';
>
>
> CREATE TRIGGER eliminar_productos_dependencias
> AFTER UPDATE on jmb_productos
> FOR EACH ROW
> EXECUTE PROCEDURE producto_eliminar_tri();
>
>
>
> El 25 de enero de 2010 09:35, José Fermín Francisco Ferreras <
> [email protected]> escribió:
>
>
>>
>> ing. José Fermín Francisco Ferreras
>> San Francisco de Macorís, Rep. Dom.
>>
>>
>>
>>
>> ------------------------------
>> Date: Mon, 25 Jan 2010 08:42:06 -0500
>> Subject: [pgsql-es-ayuda] Actualizar campos que tienen dependencias
>> Foreign Key
>> From: [email protected]
>> To: [email protected]
>>
>> >saludos una consulta. Quiero borrar de una tabla llamada productos un
>> producto(cuando digo >borrar me refiero a actualizar su estado de true a
>> false). Pero resulta que este producto tiene >muchas dependencias es llamado
>> or otras tablas. Como dar de baja a ese producto haciendo >que todas las
>> dependencias pasen de true  a  false. Atraves de un trigger(maneja potsgres
>> >triggers). Porque el update on cascade no me serviria en este caso ya que
>> no estoy actualizando >el id si no un campo diferente a este todas las
>> tablas manejan campo estado el cual es true si >esta activo y false si esta
>> eliminado. Gracias por su colaboracion de antemano.
>>
>>
>>
>>
>> Podrias probar esto, lo hice medio rapido, si tiene errores tendrias q
>> corregirlo, pero creo va por donde quieres.
>>
>>
>>
>> CREATE OR REPLACE FUNCTION esquema.cambiar_status()
>>  RETURNS trigger
>>  LANGUAGE plpgsql
>> AS $function$
>> begin
>>         UPDATE tabla SET
>>           campo = false
>>           where codigo=new.codigo;
>>         return new;
>> end;
>> $function$
>>
>>
>>
>>
>>
>> ------------------------------
>>
>
>

Responder a