1
我已经定义了这样的函数 -MySQL的回滚在交易
...
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;
我对代码进行了更改..但是我仍然收到相同的错误.. – Fox