このBEGIN TRYが私にエラーを投げかけている理由を理解しようと助けてくれる人が必要ですか?BEGIN試行のエラーコード1064
use my_guitar_shop;
DROP PROCEDURE IF EXISTS update_product_discount;
DELIMITER $$
CREATE PROCEDURE update_product_discount
(
IN product_id INT,
IN discount_percent INT
)
BEGIN
BEGIN TRY
UPDATE products
SET discount_percent = discount_percent
WHERE product_id = product_id
END TRY;
END;
BEGIN CATCH
IF discount_percent < 0 THEN
SELECT 'The discount percent must be positive' AS message
END CATCH;
END $$
DELIMITER ;
in変数の名前を表の列名と同じにしないでください。 DBエンジンは、パラメータがテーブルの列または列に渡されたことを意味する場合に混乱しています。良い慣例はP_IN_FieldNameかP_OUT_Fieldnameで、それがinかoutputかどうかを知ることができます。 – xQbert