Création et utilisation des trigger
Bonjour,
J'apprends à utiliser postgresql. Après de multiples essai je galère pour créer et utiliser des triggers. J'ai suivi des tonnes de tutos sur le net, mais je n'y arrive pas car je ne comprends pas la logique.
Voilà un exemple hyper simple:
Code:
1 2 3 4 5 6 7 8 9 10
| table1
======
id
nom
table2_id
table2
======
id
nom |
Voilà je voudrai que lorsque j'insère dans table1, une nouvelle insertion se fasse dans table2 et l'id de cette insertion soit également insérée dans la table1 et l'id inséré dans la table1 soir retourné.
Très simple comme example non ? Et ben je n'y arrive pas !
Voilà ce que j'ai fat et qui ne marche pas:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE FUNCTION testfunction() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
insert into table2(nom) VALUES (NEW.nom) RETURNING id AS idtemp;
insert into table1(nom,table2_id) VALUES (idtemp) RETURNING id;
RETURN id;
END;
$$;
CREATE TRIGGER testtrigger BEFORE INSERT ON table1 FOR EACH ROW EXECUTE PROCEDURE testfunction();
INSERT INTO table1 (nom) VALUES ('Jeff') RETURNING id; |
Pourriez-vous me donner un exemple fonctionnel que je comprenne svp ?