Bonjour,

J'ai le trigger suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DELIMITER |
CREATE TRIGGER `mon_trigger` AFTER INSERT ON `ma_table` FOR EACH ROW
BEGIN
	DECLARE var1 varchar(50);
	DECLARE var2 varchar(50);
	DECLARE var3 varchar(50);
	DECLARE var4 varchar(50);
 
	SET var1 = (SELECT t.lib1 FROM une_table t WHERE t.id=NEW.ma_fk);
	SET var2 = (SELECT t.lib2 FROM une_table t WHERE t.id=NEW.ma_fk);
	SET var3 = (SELECT t.lib3 FROM une_table t WHERE t.id=NEW.ma_fk);
	SET var4 = (SELECT t.lib4 FROM une_table t WHERE t.id=NEW.ma_fk);
 
	/* puis utilisation des variables var1, var2, var3 var4...*/
END |
DELIMITER ;
J'aimerais savoir si je peux n’exécuter qu'une seule fois la requête avec une instruction de ce genre-là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
	SET var1, var2, var3, var4 = (SELECT t.lib1, t.lib2, t.lib3, t.lib4 FROM une_table t WHERE t.id=46);
Ce trigger est appelé extrêmement souvent, donc j'aimerais l'optimiser même si la première solution fonctionne.