Mysql команда не может реализовать хранимую процедуру - PullRequest
0 голосов
/ 27 октября 2011

Я новичок в Mysql.Я хочу создать хранимую процедуру, которая обновит цену для продукта.Я использую jdbc для реализации этой хранимой процедуры. Но моя команда хранимой процедуры много раз терпела неудачу.Ниже приведен код MySQL.«p» означает продукт, «des» означает снижение цены, а «pro» означает название продукта.CallableStatement в java даст название продукта и уменьшит цену продукта.Таким образом, хранимая процедура будет снижать цену на соответствующий продукт.

`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

1 Ответ

0 голосов
/ 27 октября 2011

Я думаю, что это все, что вам нужно:

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.То же самое касается переменных, используйте полные имена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...