Как получить значение из запроса выбора в триггере в MySQL? - PullRequest
7 голосов
/ 18 февраля 2011

Как получить значение из запроса выбора в триггере и вставить это значение в таблицу?

1 Ответ

15 голосов
/ 18 февраля 2011

Для запроса INSERT Trigger вы должны использовать объект NEW
Для запроса UPDATE Trigger вы будете использовать объект OLD и NEW
Для запроса DELETE Trigger вы будете использовать объект OLD

Пример 1: если вы запустили INSERT INTO mytable (num) VALUES (10);
В триггере INSERT вы ссылаетесь на столбец как NEW.num (10);

Пример 2: iFвы запустили UPDATE mytable SET num = 41 WHERE num = 10;
В триггере UPDATE вы ссылаетесь на OLD.num (10) и NEW.num (41)

Пример 3: если вы запустили DELETE mytablenum = 104;
В триггере DELETE вы ссылаетесь на OLD.num (104)

Используйте что-то вроде этого:

DELIMITER $$

create trigger my_trigger
AFTER UPDATE on my_update_table
for each row
begin

    DECLARE P1,P2 VARCHAR(50);

    SELECT PRICENAME INTO P1 FROM PRICEIES WHERE PRICEID=OLD.PRICEID;
    SELECT PRICENAME INTO P2 FROM PRICEIES WHERE PRICEID=NEW.PRICEID;
    INSERT INTO AUDITLOG(OLDVALUE, NEWVALUE) VALUES (P1,P2);

end $$

DELIMITER ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...