私はMysqlを初めて使用しています。私は、製品の価格を更新するストアドプロシージャを作成したい。私はこのストアドプロシージャを実装するためにjdbcを使用します。しかし、私のストアドプロシージャのコマンドは何度も失敗しました。以下はmysqlコードです。 「p」は製品を意味し、「des」は価格の低下を意味し、「pro」は製品名を意味する。 JavaのCallableStatementは、製品名とその製品価格の低下を示します。したがって、ストアドプロシージャは、対応する製品の価格を下げます。Mysqlコマンドがストアドプロシージャを実装できませんでした
DELIMITER $
CREATE PROCEDURE updateP(IN pro CHAR(10), IN des INT)
BEGIN
UPDATE customers
SET price = price-des
WHERE product= pro;
END$
DELIMITER ;
パラメータとして渡さ減少量によって現在の価格を下げる必要があること:
`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.phere = p-des'は 'CHAR'で実行されるすべての演算で、減算したい場合は数値型にする必要があります。 3.ある時点でテーブルを更新したいと思っていて、どこにも 'update'ステートメントが表示されていないと思います。あなたの目標をもう少し明確にしてください。 – Icarus
返信用のThx。顧客はテーブルであり、価格はそれの属性です。 – user1015798