建立存储过程 hs(in sh varchar(8), in dzbh varchar(3) ,in rq date,out zt varchar(12) ) 输入图书条形码sh、读者证编号dzbh和还书日期rq,办理还书。 检查借阅数据表是否有此记录(条形码txm为sh读者dzzh为dzbh,且还书日期hsrq是否为null,若没有则zt返回"没有该借阅",否则在借阅表将该借阅记录的还书日期改为rq。 并将图书数据表该图书的在库zk改为1,zt返回"成功还书". 调用过程 分别以下列参数调用过程,并将结果返回@zt1、@zt2 书号P0000001和读者证号001,还书日期2022-5-1 书号P0000001和读者证号002,还书日期2022-5-1
时间: 2024-03-25 11:36:20 浏览: 77
所有数据库存储过程in,out和java匹配对应字段
好的,请您先登录MySQL数据库,然后使用以下命令创建存储过程hs:
```
DELIMITER $$
CREATE PROCEDURE hs(
IN sh VARCHAR(8),
IN dzbh VARCHAR(3),
IN rq DATE,
OUT zt VARCHAR(12)
)
BEGIN
DECLARE count INT;
SELECT COUNT(*) INTO count FROM borrow WHERE txm = sh AND dzzh = dzbh AND hsrq IS NULL;
IF count = 0 THEN
SET zt = '没有该借阅';
ELSE
UPDATE borrow SET hsrq = rq WHERE txm = sh AND dzzh = dzbh AND hsrq IS NULL LIMIT 1;
UPDATE book SET zk = 1 WHERE sh = sh;
SET zt = '成功还书';
END IF;
END$$
DELIMITER ;
```
接着,您可以使用以下命令调用hs存储过程,并指定参数:
```
CALL hs('P0000001', '001', '2022-5-1', @zt1);
CALL hs('P0000001', '002', '2022-5-1', @zt2);
```
其中,'P0000001'是图书条形码,'001'和'002'是读者证编号,'2022-5-1'是还书日期。执行完上述命令后,@zt1和@zt2变量的值分别为调用hs存储过程的返回值,表示两次还书操作的结果。
阅读全文