Au départ je voulais capter une erreur pour faire un rollback. J'ai plus ou moins trouvé qu'il fallait utiliser DECLARE EXIT HANDLER FOR SQLEXCEPTION qu’apparemment on ne peut mettre que dans des procedures

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
17
18
 
CREATE PROCEDURE myProc()
BEGIN 
	DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN 	ROLLBACK;	SELECT -1;END
	DECLARE EXIT HANDLER FOR SQLWARNING BEGIN 	ROLLBACK;	SELECT -2;END
	DECLARE EXIT HANDLER FOR NOT FOUND BEGIN 	ROLLBACK;	SELECT -3;END
 
	set autocommit=0;
 
	START TRANSACTION; 
 
	INSERT INTO maTable(champ1) VALUES('blabla');
	INSERT INTO maTable(champ1) VALUES('blabla2');
 
	COMMIT;
	SET AUTOCOMMIT=1;
	SELECT 1;
END
et là j'ai l'erreur You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Après plusieurs essai de syntaxe différente, j'ai toujours pas trouver d'où vient mon pb. Une idée ? Merci