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

Mysql 如何同时使用事务和存储过程?,mysql,mysql-workbench,mysql-error-1064,Mysql,Mysql Workbench,Mysql Error 1064,创建一个存储过程,在给定标题a的情况下,返回我们图书馆拥有的图书的总拷贝数。 首先,找到A的标准编号。 然后,遍历ITEM表以查找其中standard Number=S的元组。 然后,将副本数相加,得出整个图书馆系统拥有的副本总数。请教我如何修复这些代码好吗 use library; select * from item; DELIMITER $$ DROP PROCEDURE IF EXISTS FindNumberOfCopies; CREATE PROCEDURE FindNumber

创建一个存储过程,在给定标题a的情况下,返回我们图书馆拥有的图书的总拷贝数。 首先,找到A的标准编号。 然后,遍历ITEM表以查找其中standard 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
$$
您的
选择中没有任何意义。你的交易没有意义。您回滚了一个甚至没有发生的事务


每个sql调用都是一个事务。您正在用一个trans包装一个trans。在编辑的过程中,我不知何故删除了1064,我不知道我错过了什么,但它不起作用。首先,事务处理没有理由首先,我首先得到了语法错误。但是存储过程是正确的,对吗?因为我的表有相同的图书标题名,所以我希望更新并清除所有重复的数据,然后将其存储在表中。选择副本究竟在做什么。这就像是一个被抛弃的想法,可能也是错误的,但是原始的分隔线。太早了,我想删除一些数据。你不想删除一些数据。您正在执行更新stmt。什么时候会删除一些数据?
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 ;