在存储过程中增加如下代码,就好了。
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT;
INSERT INTO ErrorLog (ErrorTime, ErrorCode, ErrorMessage)
VALUES (NOW(), @errno, CONCAT('Error ', @errno, ': ', @text));
ROLLBACK; -- 根据需要决定是否回滚事务
END;