gpt4 book ai didi

mysql - 在表2中插入记录后更新表1

转载 作者:行者123 更新时间:2023-11-29 16:46:30 25 4
gpt4 key购买 nike

当我在销售表中插入记录时,我需要更新产品表中的库存。

这些是我的表格:

表格产品:

idprod int primary key  
name varchar (20)
description varchar (100)
int stock

销售表:

idsale int primary key  
idprod int foreign key
quantity int

这些是我的存储过程:

create procedure update_stock()  
begin
update products
inner join sales on products.idprod = sales.idprod
set products.stock = products.stock-sales.quantity;
end

create procedure add_sale(in s_id int, in p_id int, in qua int)
begin
insert into sales values(s_id, p_id, qua);
call update_stock ();
end

首先,我用一些数据填充表 products,然后调用过程 add_sale。我对销售表中的第一条记录没有任何问题,但是当我添加更多记录时,产品表中所有产品的库存都会更新,而不仅仅是一个。

最佳答案

我已阅读您的问题,您有两个存储过程,但在 update_stock() 存储过程中您没有定义 WHERE 子句,因此您的存储过程应该像这样

 create procedure update_stock(  
@id int
)
begin
update products p,
sales s
set products.stock = products.stock-s.quantity WHERE p.idprod = s.idprod and WHERE p.idprod=@idvalue ;
end

关于mysql - 在表2中插入记录后更新表1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53076123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com