DELIMITER //
CREATE PROCEDURE CheckTotalCredits(IN threshold INT, OUT result INT)
BEGIN
DECLARE totalCredits INT;
SELECT SUM(score) INTO totalCredits FROM course_info;
IF totalCredits <=threshold THEN
SET result = 0;
ELSE
SET result = 1;
END IF;
END //
DELIMITER ;
SET @x = 20;
BEGIN;
-- 尝试插入一条记录
CALL INSERT1(7,'概率论',1.5);
-- 检查总学分数是否超过20
CALL CheckTotalCredits(@x,@result);
-- 如果总学分数不超过20,则提交事务
IF @result = 0 THEN
COMMIT;
SELECT '插入成功';
ELSE
-- 如果超过20,则回滚事务
ROLLBACK;
SELECT '插入失败,总学分数超过20';
END IF;
END;
上述代码为什么会报1064 - 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 'IF @result = 0 THEN
COMMIT' at line 2这个错误。