2016-08-10 6 views
0

У меня проблема, которую я надеюсь, что кто-то там сможет помочь.Несколько команд в триггере (обновить несколько столбцов с разными условиями)

Я пытаюсь написать триггер, который берет штамп даты и времени, и помещает только дату в новый столбец. Но также, если значение в другом столбце равно x, затем замените его на y.

Я могу заставить отдельные операторы работать (т. Е. Если у меня есть только код даты или код замены, он отлично работает), но я не могу заставить их работать одновременно с одним и тем же триггером.

SET NEW.date = LEFT(NEW.entrydate, 10); 
IF 
    (NEW.connect_ip = "1.2.3.4") 
    THEN SET 
    NEW.connect_ip = "0.0.0.0"; 
    END IF 

ответ

0

Multi-заявление Триггеры нужно начинать и заканчивать вокруг своего «тела», и, как правило DELIMITER переопределены вокруг своей декларации.

Пример/Шаблон:

DELIMITER $$ 

CREATE TRIGGER [blah blah] 
BEGIN 
    [do stuff] 
END$$ 

DELIMITER ; 

В качестве альтернативы, для вашего конкретного случая, я заметил, ответ другой день с Possiblity я проглядел; вы можете установить несколько параметров в инструкции SET:

SET NEW.date = LEFT(NEW.entrydate, 10) 
    , NEW.connect_ip = IF(NEW.connect_ip = "1.2.3.4", "0.0.0.0", "1.2.3.4") 
    ; 
Смежные вопросы