如何同时使用事务和存储过程?

How to use transaction and stored procedure at the same time?

创建一个存储过程,其中 returns 我们图书馆拥有的一本书的总份数,给定书名 A。 首先求出A的标准数(S)。 然后,通过 ITEM table 找到标准 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
$$
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 调用都是一个事务。您正在用反式包裹反式。在此编辑过程中,我以某种方式删除了 1064