Mysql
 sql >> Database >  >> RDS >> Mysql

come ottenere valore dalla query selezionata nel trigger in mysql5?

Per una query INSERT Trigger si utilizzerà l'oggetto NEW
Per una query UPDATE Trigger si utilizzeranno gli oggetti OLD e NEW
Per una query DELETE Trigger si utilizzerà l'oggetto OLD

Esempio 1:se hai eseguito INSERT INTO mytable (num) VALUES (10);
Nel trigger INSERT, fai riferimento alla colonna come NEW.num (10);

Esempio 2:se hai eseguito UPDATE mytable SET num =41 WHERE num =10;
Nel trigger UPDATE, fai riferimento a OLD.num (10) e NEW.num (41)

Esempio 3:se hai eseguito DELETE mytable num =104;
Nel trigger DELETE, fai riferimento a OLD.num (104)

Usa qualcosa come questo:

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 ;