Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como obter valor da consulta de seleção no gatilho no mysql5?


Para uma consulta INSERT Trigger você usaria o objeto NEW
Para uma consulta UPDATE Trigger você usaria o objeto OLD e NEW
Para uma consulta DELETE Trigger você usaria o objeto OLD


Exemplo 1:iF você executou INSERT INTO mytable (num) VALUES (10);
No gatilho INSERT, você referencia a coluna como NEW.num (10);

Exemplo 2 :iF você executou UPDATE mytable SET num =41 WHERE num =10;
No gatilho UPDATE, você faz referência a OLD.num (10) e NEW.num (41)

Exemplo 3 :iF você executou DELETE mytable num =104;
No gatilho DELETE, você faz referência a OLD.num (104)

Use algo assim:
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 ;