存储过程与事务给我错误

时间:2012-11-24 06:36:24

标签: mysql sql stored-procedures error-handling

有人可以告诉我为什么以下存储过程会给我一个错误 -

CREATE PROCEDURE test(emailA varchar(50))
BEGIN
DECLARE a  INT;
 DECLARE f_id BIGINT;

DECLARE exit handler for sqlexception sqlwarning 
BEGIN    
  SET a = 1;
END; 

DECLARE EXIT HANDLER FOR 1072
BEGIN       
     CALL log_error(1072,'test');
END;   

SELECT id  INTO f_id FROM user WHERE email = emailA;

END// 

ERROR

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'sqlwarning附近使用正确的语法BEGIN SET a = 1;结束;在第6行宣布退出HANDLER F'

2 个答案:

答案 0 :(得分:0)

我认为你需要添加逗号

DECLARE exit HANDLER FOR SQLEXCEPTION, SQLWARNING

答案 1 :(得分:0)

如果还没有解决..

希望这有效

sqlexception的DECLARE退出处理程序SET a = 1,sqlwarning CALL log_error(1072,'test');