DECLARE CONTINUE HANDLER FOR1452 BEGIN SET@errorInfo='外键约束错误'; END; -- 1. 查询有没有选择过 SELECTCOUNT(*) INTO s1 FROM choose WHERE student_no = stu_no AND course_no = c_no; IF(s1 >=1) THEN SET state =-1; ELSE -- 2. 查询课程是不是已审核的 SELECT STATUS INTO s2 FROM course WHERE course_no = c_no; IF (s2 ='已审核') THEN -- 3. 查询课程是不是人数未满的 SELECT available INTO s3 FROM course WHERE course_no = c_no; IF(s3 >0 ) THEN SET state =0; -- 插入 INSERTINTO choose VALUES(NULL,stu_no,c_no,NULL,NOW()); -- 这里出的错 -- 如果没有自定义错误处理 下面代码不运行了 SET@state2='这里有没有运行?'; ELSE SET state =-2; END IF; ELSE SET state =-3; END IF; END IF; END $$ DELIMITER ;