-1

今日は独自のトリガーを作成しましたが、mysqlに入力すると、構文エラーが発生します。これが次のコードの私のトリガー定義です。

CREATE DEFINER = CURRENT_USER TRIGGER `Customer_Car_Trigger` AFTER INSERT ON `CUSTOMERS`
FOR EACH ROW
BEGIN
SET @CountOfCar = (SELECT COUNT(ID) FROM `CARS`,`CUSTOMERS` WHERE `CARS`.`CustomerID` = `CUSTOMERS`.`ID`)
IF @CountOfCar>0 THEN
    UPDATE `CUSTOMERS` SET `NumberOfCars`=+1 WHERE `CUSTOMERS`.`ID`=NEW.`ID`
END IF
END;

このコードをphpmyadminに入れると、次のようになります。

#1064-SQL構文にエラーがあります。'IF @CountOfCar> 0の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。THENUPDATE CUSTOMERSSET NumberOfCars= + 1 WHERE`CUSTOMER'5行目

IFステートメントに対してさまざまなことを試しましたが、間違っていますか?構文エラーは表示されませんでした。phpmyadminがこのエラーを表示するのはなぜですか?IF-ELSEステートメントで検証可能とは異なりますか?

4

1 に答える 1

1

いくつか忘れて;、SQLで1回繰り返すと使用できなくなります+=1

delimiter |
CREATE DEFINER = CURRENT_USER TRIGGER `Customer_Car_Trigger` AFTER INSERT ON `CUSTOMERS`
FOR EACH ROW
BEGIN
   SET @CountOfCar = (SELECT COUNT(ID) FROM `CARS`,`CUSTOMERS` WHERE `CARS`.`CustomerID` = `CUSTOMERS`.`ID`);
   IF @CountOfCar>0 THEN
      UPDATE `CUSTOMERS` SET `NumberOfCars`= `NumberOfCars`+1 WHERE `CUSTOMERS`.`ID`=NEW.`ID`;
   END IF;
END;
|
delimiter ;
于 2012-12-25T19:19:47.453 に答える