Почему выбрасывает ошибку mysql?

CREATE TRIGGER marketing_list_update
AFTER UPDATE
ON cms_offers
FOR EACH ROW
begin
if NEW.status = 'active' 
then UPDATE marketing_credits_requests SET sum_s=NEW.ammount, statut=NEW.status WHERE id_req=old.id;
else then UPDATE marketing_credits_requests SET  statut=NEW.status WHERE id_req=old.id;
end;

и ошибка

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

Делал все по докам mysql, версия 5.5.25


Ответы (1 шт):

Автор решения: Walfter

Примерно так, после ELSE не нужен THEN он нужен для ELSEIF и IF что бы отделить условие, и после всего блока условий его надо закрыть

delimiter //
CREATE TRIGGER marketing_list_update
AFTER UPDATE
ON cms_offers
FOR EACH ROW
BEGIN
    IF NEW.status = 'active' 
        THEN UPDATE marketing_credits_requests SET sum_s=NEW.ammount, statut=NEW.status WHERE id_req=old.id;
        ELSE UPDATE marketing_credits_requests SET  statut=NEW.status WHERE id_req=old.id;
    END IF;
END;//
delimiter ;

UPDATE P.S.: добавил разделитель

→ Ссылка