Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment obtenir la valeur de la requête select dans le déclencheur dans mysql5 ?

Pour une requête INSERT Trigger, vous utiliserez l'objet NEW
Pour une requête UPDATE Trigger, vous utiliserez l'objet OLD et NEW
Pour une requête DELETE Trigger, vous utiliserez l'objet OLD

Exemple 1 :si vous avez exécuté INSERT INTO mytable (num) VALUES (10) ;
Dans le déclencheur INSERT, vous référencez la colonne comme NEW.num (10 );

Exemple 2 :si vous avez exécuté UPDATE matable SET num =41 WHERE num =10 ;
Dans le déclencheur UPDATE, vous référencez OLD.num (10) et NEW.num (41)

Exemple 3 :si vous avez exécuté DELETE mytable num =104 ;
Dans le déclencheur DELETE, vous référencez OLD.num (104)

Utilisez quelque chose comme ceci :

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 ;