sql >> Databasteknik >  >> RDS >> Mysql

hur får man värde från vald fråga i trigger i mysql5?

För en INSERT Trigger-fråga skulle du använda objektet NEW
För en UPDATE Trigger-fråga skulle du använda objektet OLD och NEW
För en DELETE Trigger-fråga skulle du använda objektet OLD

Exempel 1:om du körde INSERT INTO mytable (num) VALUES (10);
I INSERT-utlösaren refererar du till kolumnen som NEW.num (10);

Exempel 2:om du körde UPDATE mytable SET num =41 WHERE num =10;
I UPDATE-utlösaren refererar du till OLD.num (10) och NEW.num (41)

Exempel 3:om du körde DELETE mytable num =104;
I DELETE-utlösaren refererar du till OLD.num (104)

Använd något sånt här:

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 ;



  1. Socketfil /var/pgsql_socket/.s.PGSQL.5432 saknas i Mountain Lion (OS X Server)

  2. mySQL - Tabelllåsning vs radlåsning

  3. Kan jag ge åtkomst till databaser med prefix sedan jokertecken?

  4. Kan användning av en IP-adresskänslig vyräknare bära för mycket arbetsbelastning för MYSQL/PHP?