我是Mysql的新手。我想创建一个更新产品价格的存储过程。我使用jdbc来实现这个存储过程。但是我的存储过程命令多次失败。以下是mysql代码。 “p”表示产品,“des”表示价格下降,“pro”表示产品名称。 java中的CallableStatement将给出产品名称和产品价格的减少量。因此,存储过程将降低相应产品的价格。
`CREATE PROCEDURE updateP(IN pro CHAR(10), IN des INT)`
`
BEGIN`
UPDATE customers
`DECLARE p INT;`
`SET p = (SELECT price FROM customers WHERE product= pro);`
`SELECT p;`
`p = p - des;`
END
答案 0 :(得分:0)
我认为这就是你所需要的:
DELIMITER $
CREATE PROCEDURE updateP(IN pro CHAR(10), IN des INT)
BEGIN
UPDATE customers
SET price = price-des
WHERE product= pro;
END$
DELIMITER ;
这应该将当前价格减少一个作为参数传递的减少量。
一个建议:不要将您的程序命名为updateP
使用sprocUpdateProduct
或UpdateProduct_sp
等全名;如果明天您需要更新某个人,则不再知道updateP
是Person
还是Product
。变量也是如此,使用全名。