MySQL数据库创建选课存储过程,没门课的选课人数上限人数为10人,如果选课人数已经有10人,则显示无法选择该课程,提示“选课人数已达上限”,如果未满10人,则将选择该课程
时间: 2023-12-03 22:02:29 浏览: 73
下面是一个简单的 MySQL 存储过程示例,用于创建选课系统并实现选课功能。这个存储过程会检查课程的选课人数是否已经达到上限,如果没有达到,则将选课人数加1,否则提示选课人数已满无法选择该课程。
```
DELIMITER //
CREATE PROCEDURE enroll_course(IN course_id INT, IN student_id INT, OUT message VARCHAR(255))
BEGIN
DECLARE enroll_count INT;
SELECT COUNT(*) INTO enroll_count FROM enrollment WHERE course_id = course_id;
IF enroll_count >= 10 THEN
SET message = '选课人数已达上限';
ELSE
INSERT INTO enrollment(course_id, student_id) VALUES(course_id, student_id);
SET message = '选课成功';
END IF;
END//
DELIMITER ;
```
使用示例:
```
CALL enroll_course(1, 123456, @message);
SELECT @message;
```
其中,`course_id` 和 `student_id` 是输入参数,分别表示课程 ID 和学生 ID,`message` 是输出参数,表示选课结果的消息。使用 `CALL` 语句调用存储过程,并将结果保存在 `@message` 变量中,最后使用 `SELECT` 语句显示结果。
阅读全文