Ceci est une ancienne révision du document !
Version: PostgreSQL 8.4.4
But: Créer un trigger faisant un UPDATE lors du DELETE d'un record
Remarques:
Un trigger doit obligatoirement faire appel à une fonction. On doit donc d'abord déclarer la fonction correspondante.
Une fonction de type trigger doit retourner une valeur (: compléter) afin de permettre à l'action de continuer. Si elle retourne NULL, l'action en cours se termine.
La première ligne commentée ci-dessous sert à installer le language 'plpgsql' utilisé ici comme language de la fonction. Cette commande ne doit être lancée qu'une seule fois.
--CREATE LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION users_clear_created_by() RETURNS TRIGGER AS 'BEGIN UPDATE tan_users SET created_by = null WHERE created_by = OLD.id; UPDATE tan_users SET modified_by = null WHERE modified_by = OLD.id; RETURN OLD; END;' LANGUAGE 'plpgsql'; DROP TRIGGER IF EXISTS users_clear_created_by ON tan_users; CREATE TRIGGER users_clear_created_by BEFORE DELETE ON tan_users FOR EACH ROW EXECUTE PROCEDURE users_clear_created_by();