sql >> Databáze >  >> RDS >> Mysql

jak získat hodnotu z výběrového dotazu ve spouštěči v mysql5?

Pro INSERT Trigger dotaz byste použili objekt NEW
Pro UPDATE Trigger dotaz byste použili objekt OLD a NEW
Pro DELETE Trigger dotaz byste použili objekt OLD

Příklad 1 :Pokud jste spustili INSERT INTO mytable (num) VALUES (10);
Ve spouštěči INSERT odkazujete na sloupec jako NEW.num (10);

Příklad 2:Pokud jste spustili UPDATE mytable SET num =41 WHERE num =10;
Ve spouštěči UPDATE odkazujete na OLD.num (10) a NEW.num (41)

Příklad 3 :Pokud jste spustili DELETE mytable num =104;
Ve spouštěči DELETE odkazujete na OLD.num (104)

Použijte něco takového:

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. SELECT COUNT ve vztahu jeden k mnoha

  2. Jak najít podobné výsledky a seřadit je podle podobnosti?

  3. Jak určit typ databáze pro dané připojení JDBC?

  4. Typy SQL JOIN