我有桌子:Suscriptions,Suscription_Book,Books
我想在从Suscription
编辑图书库存时更新Suscription_stock新的Suscription_stock将是其书籍的最低库存
我在Books表格中创建了一个触发器,以便在我编辑图书时更新Suscriptions。
我在触发器中创建一个临时表来保存"最低库存"在我找到我正在编辑的书中的每本书中的书籍,然后我更新了这些书籍。
但是Mysql不允许我在触发器中创建一个临时表,我试图在存储过程中创建临时表但是我得到了这个错误:无法重新打开表"最低价格' ;
这是查询:
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
drop table if exists lowestStock;
CREATE TEMPORARY TABLE lowestStock select d.Susc_id, min(b.Prod_stock) as min
from Suscription_Book d inner join v_books b on b.Prod_id=d.Book_id
where d.Susc_id in (select Susc_id from Suscription_Book where Book_id=new.Book_id)
group by d.Susc_id;
SELECT COUNT(*) FROM lowestStock INTO n;
SET i=0;
WHILE i<n DO
update Suscriptions
set Prod_stock = (select min from lowestStock Limit i,1)
where Prod_id = (select Susc_id from lowestStock Limit i,1);
SET i = i + 1;
END WHILE;
drop table if exists lowestStock ;