查找错误:CREATE PROCEDURE 还书(in lb char(2),in hm varchar(20),in sh varchar(20)) BEGIN CASE lb WHEN '学生' UPDATE 图书信息表 SET 库存=库存+1 WHERE 图书号=sh; UPDATE 学生借阅信息表 SET `是否归还`=1,`还书时间`=NOW(),`是否超期`=DAY(NOW())-DAY(`应还时间`) where `图书号`=sh and `教工号`=hm; UPDATE 图书统计表 SET `在借图书数量`=`在借图书数量`-1,`现存图书数量`=`现存图书数量`+1; WHEN '教工' UPDATE 图书信息表 SET 库存=库存+1 WHERE 图书号=sh; UPDATE 教师借阅信息表 SET `是否归还`=1,`还书时间`=NOW(),`是否超期`=DAY(NOW())-DAY(`应还时间`) where `图书号`=sh and `教工号`=hm; UPDATE 图书统计表 SET `在借图书数量`=`在借图书数量`-1,`现存图书数量`=`现存图书数量`+1; END CASE; END;
时间: 2023-07-26 12:03:41 浏览: 71
这段代码有语法错误。应该在 CASE 和 WHEN 之后加上 THEN,同时在 END CASE 之前加上 END。正确的代码如下所示:
```sql
CREATE PROCEDURE 还书(in lb char(2),in hm varchar(20),in sh varchar(20))
BEGIN
CASE lb
WHEN '学生' THEN
UPDATE 图书信息表 SET 库存=库存+1 WHERE 图书号=sh;
UPDATE 学生借阅信息表 SET `是否归还`=1,`还书时间`=NOW(),`是否超期`=DAY(NOW())-DAY(`应还时间`) where `图书号`=sh and `学号`=hm;
UPDATE 图书统计表 SET `在借图书数量`=`在借图书数量`-1,`现存图书数量`=`现存图书数量`+1;
WHEN '教工' THEN
UPDATE 图书信息表 SET 库存=库存+1 WHERE 图书号=sh;
UPDATE 教师借阅信息表 SET `是否归还`=1,`还书时间`=NOW(),`是否超期`=DAY(NOW())-DAY(`应还时间`) where `图书号`=sh and `教工号`=hm;
UPDATE 图书统计表 SET `在借图书数量`=`在借图书数量`-1,`现存图书数量`=`现存图书数量`+1;
END CASE;
END;
```
此外,还需要根据具体的表结构和业务逻辑进行修改。