提问人:Kinza khan 提问时间:4/26/2023 最后编辑:marc_sKinza khan 更新时间:5/24/2023 访问量:46
通过mysql在表中插入过程的值
Insert value through procedure in a table by mysql
问:
我想使用过程将值插入到表中。我有 2 张桌子和;在表格中,我有列,在表格中,我有和 .sales
products
product
id, product_name,product_price, product_quantity
sales
p_id
p_qty
当用户在表中添加值时,我想使用一个过程;此过程应为 和 获取 2 个参数。sales
p_id
p_qty
如果小于 0 或大于 ,则 showstock 不可用p_qty
product_quantity
答:
0赞
Barmar
4/26/2023
#1
product_qty_proc > products.product_quantity
需要在查询中引用表中的特定行。您可以使用子查询来选择 的数量。将该条件替换为:products
product_id_proc
product_qty_proc > (
SELECT product_quantity
FROM products
WHERE product_id = product_id_proc
)
此外,应该是 .product_qty_proc>0
product_qty_proc<0
0赞
Kinza khan
4/26/2023
#2
这是我的查询
DELIMITER //
CREATE PROCEDURE find_qty_(
product_id_proc INT,
product_qty_proc INT
)
BEGIN
DECLARE
remaining_stock INT;
SELECT product_quantity INTO remaining_stock FROM products
WHERE id = product_id_proc;
IF product_qty_proc>=0 OR product_qty_proc>remaining_stock THEN
BEGIN SELECT "stock not available";
END;
ELSE
INSERT into sales(p_id,p_qty)VALUES(product_id_proc,product_qty_proc);
END IF;
END;;
评论
0赞
Barmar
4/26/2023
问题说“小于0”,为什么你的病情?>=0
0赞
Kinza khan
4/26/2023
这两个条件都是正确的。在这两种情况下,库存均不为 0 或小于零
0赞
Barmar
4/26/2023
哦,现在我看到你有 in 而不是 ,所以条件是相反的。INSERT
ELSE
IF
0赞
Community
4/27/2023
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。
0赞
Kinza khan
4/28/2023
我的查询是,我想在具有两个参数的销售表中插入值,第一个参数是product_id_proc,另一个是product_qty_proc如果用户添加的产品数量大于产品表数量中的值,它应该是一个错误显示,显示库存不可用,或者如果用户数量小于或等于产品表数量,则应在销售中插入值表格注意最初销售表是空白的,我的错误发生在条件语句中,因此当产品数量大于库存时,所有数据都插入到销售表中,
评论
products.product_quantity
product_qty_proc > products.product_quantity
products