-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 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的 'IF @CountOfCar>0 THEN UPDATE CUSTOMERSSET NumberOfCars=+1 WHERE 'CUSTOMER'附近使用正确的语法

我对 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 回答