MySQLサーバのバージョンに対応するマニュアルを確認します...MySQLのトリガー:#1064 - SQL構文にエラーがあります。これはデ構文である私は、MySQL 5.1.73 にトリガを作成する問題を抱えている
DELIMITER $$
CREATE TRIGGER `discount2`
BEFORE
INSERT ON `order_item`
FOR EACH ROW
DECLARE alumno INT;
DECLARE profesor INT;
DECLARE dto decimal(10,2);
SET @alumno := (SELECT user_id from `order` where `order`.id = NEW.order_id)
SET @profesor := (SELECT id_profesor from user where user.id = @alumno)
SET @dto := (SELECT descuento from descuentos
join user on descuentos.id_profesor = user.id
join producto on producto.familia=descuentos.familia
where producto.id = NEW.product_id and user.id = @profesor)
SET.NEW.descuento = SELECT CAST((((@dto)*(NEW.pvp))/100) AS DECIMAL(10,2))
$$
DELIMITER ;
しかし、いくつかのエラーがある
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE alumno INT;
DECLARE profesor INT;
DECLARE dto decimal(10,2);
SET @alu' at line 5
誰かが私を助けることができますか? おかげU
エラー作成または実行上のエラー、エラーコードとメッセージは何ですか?すべてのステートメントは終了する必要があります。あなたは最初の宣言の前に始まり、最後の$$の前に終わりが必要です。 –
実際には、私が答えとして追加した非常に多くのエラーがあります。 –
私はエラーを追加しました! – acordero