Синтаксис триггера, не могу найти ошибку?

CREATE TRIGGER `update_balance` AFTER UPDATE ON `trading`
FOR EACH ROW BEGIN
  IF (NEW.`line` = 'up' AND NEW.`price_end` > NEW.`price`) THEN
    BEGIN
      UPDATE `clients` SET `balance` = `balance` + NEW.`sum` * 1.85 WHERE `email` = NEW.`user_id`;
    END
  ELSE IF (NEW.`line` = 'down' AND NEW.`price_end` < NEW.`price`) THEN
    BEGIN
      UPDATE `clients` SET `balance` = `balance` + NEW.`sum` * 1.85 WHERE `email` = NEW.`user_id`;
    END
  END
END;


Выдает ошибку, что может быть не так?

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 '' at line 5


5 строка, это первый UPDATE
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Для начала определитесь, какой именно у вас диалект SQL, не пихайте все тэги подряд. В разных диалектах синтаксис может быть разным.
Для MySQL перед определением триггера необходимо изменить символ, завершающий команду (по умолчанию - точка с запятой).
DELIMITER $
CREATE TRIGGER ...
...
END;
$
DELIMITER ;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы