Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erhalte ich einen Wert von einer ausgewählten Abfrage im Trigger in mysql5?

Für eine INSERT-Trigger-Abfrage würden Sie das Objekt NEW verwenden
Für eine UPDATE-Trigger-Abfrage würden Sie das Objekt OLD und NEW verwenden
Für eine DELETE-Trigger-Abfrage würden Sie das Objekt OLD verwenden

Beispiel 1:Wenn Sie INSERT INTO mytable (num) VALUES (10) ausgeführt haben;
Im INSERT-Trigger referenzieren Sie die Spalte als NEW.num (10);

Beispiel 2:Wenn Sie UPDATE mytable SET num =41 WHERE num =10 ausgeführt haben;
Im UPDATE-Trigger verweisen Sie auf OLD.num (10) und NEW.num (41)

Beispiel 3:Wenn Sie DELETE mytable num =104 ausgeführt haben;
Im DELETE-Trigger verweisen Sie auf OLD.num (104)

Verwenden Sie so etwas:

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 ;