1 使用teacher表 和 dept表完成下面练习 创建一个存储过程,以教师编号和部门号作为参数,修改教师所在的部门为所输入的部门号。 --如果修改成功,则显示“教师由……号部门调入……号部门”; 如果不存在该教师,则显示--“教师编号不存在,请输入正确的教师编号。”; 如果不存在该部门,则显示--“该部门不存在,请输入正确的部门号。”。
时间: 2023-07-15 17:13:59 浏览: 62
数据库表的创建、管理和数据操作(实验一)
以下是这个存储过程的代码:
```mysql
DELIMITER $$
CREATE PROCEDURE change_teacher_dept(
IN teacher_id INT,
IN dept_id INT)
BEGIN
DECLARE teacher_count INT;
DECLARE dept_count INT;
SELECT COUNT(*) INTO teacher_count FROM teacher WHERE id = teacher_id;
IF teacher_count = 0 THEN
SELECT '教师编号不存在,请输入正确的教师编号。' AS message;
ELSE
SELECT COUNT(*) INTO dept_count FROM dept WHERE id = dept_id;
IF dept_count = 0 THEN
SELECT '该部门不存在,请输入正确的部门号。' AS message;
ELSE
UPDATE teacher SET dept_id = dept_id WHERE id = teacher_id;
SELECT CONCAT('教师由', teacher.dept_id, '号部门调入', dept_id, '号部门') AS message
FROM teacher WHERE id = teacher_id;
END IF;
END IF;
END$$
DELIMITER ;
```
使用方法:
```mysql
CALL change_teacher_dept(1, 2);
```
其中,1 和 2 分别为教师编号和部门号,根据具体情况替换即可。执行后会显示相应的提示信息。
阅读全文