我已经定义了一个这样的函数 -
...
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
DECLARE EXIT HANDLER FOR SQLWARNING ROLLBACK SET error_key = 1 AND error_message = 'Failed -- Rollback.';
BEGIN
SELECT 'Insert Failed.';
CALL log_error(error_key, error_message);
END ;
START TRANSACTION;
DECLARE EXIT HANDLER FOR 1062 SET error_key = 02 AND error_message = 'Insert Failed';
BEGIN
SELECT 'Attempt to create a duplicate entry in the follow table.';
CALL log_error(error_key, error_message);
END;
INSERT INTO `user_table` (...) VALUES (...);
/* Call the trigger to update the profile table */
CALL updateAnotherTable(@result1);
CALL updateAnotherTable1(@result2);
IF @retsult1=0 OR @retsult2=0 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
...
我收到以下错误 -
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 'DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK; DECLARE EXIT HANDLER FOR SQL
编辑
我更新了我的proc我仍然收到错误..
DECLARE exit handler for sqlexception sqlwarning
BEGIN
SET error_key = 901;
SET error_message = 'Insert Failed.';
CALL log_error(error_key, error_message);
ROLLBACK;
END;