创建一个存储过程,返回图书馆所拥有的图书的总副本,给定标题A. 首先,找到A的标准数(S)。 然后,浏览ITEM表以查找标准Number = S的元组。 然后,将副本数量加在一起以查找整个库系统拥有的总副本数。请教我如何修复这些代码?
use library;
select * from item;
DELIMITER $$
DROP PROCEDURE IF EXISTS FindNumberOfCopies;
CREATE PROCEDURE FindNumberOfCopies ( IN itemTitle varchar(150))
BEGIN
SELECT copies FROM item WHERE title = itemTitle;
ROLLBACK;
END;
START TRANSACTION;
UPDATE item SET copies = newCopies where title = itemTitle;
COMMIT;
END
$$
答案 0 :(得分:1)
DROP PROCEDURE IF EXISTS FindNumberOfCopies;
DELIMITER $$
CREATE PROCEDURE FindNumberOfCopies
(
IN itemTitle varchar(150)
)
BEGIN
SELECT copies FROM item WHERE title = itemTitle;
UPDATE item SET copies = newCopies where title = itemTitle;
END
$$
DELIMITER ;
select
没有任何意义。您的交易没有意义。您回滚了甚至没有发生的事务。
每个sql调用都是一个事务。你用反式包裹一个trans。在这个编辑的过程中,我以某种方式删除了1064