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:
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é.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 table1 ====== id nom table2_id table2 ====== id nom
Très simple comme example non ? Et ben je n'y arrive pas !
Voilà ce que j'ai fat et qui ne marche pas:
Pourriez-vous me donner un exemple fonctionnel que je comprenne svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Partager