Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak uzyskać wartość z zapytania wybierającego w wyzwalaczu w mysql5?

Dla zapytania INSERT Trigger użyj obiektu NEW
Dla zapytania UPDATE Trigger użyj obiektu OLD i NEW
Dla zapytania DELETE Trigger użyj obiektu OLD

Przykład 1 :jeśli uruchomiłeś INSERT INTO mytable (num) VALUES (10);
W wyzwalaczu INSERT odwołujesz się do kolumny jako NEW.num (10);

Przykład 2 :jeśli uruchomiłeś UPDATE mojatabela SET num =41 WHERE num =10;
W wyzwalaczu UPDATE odwołujesz się do STARY.num (10) i NOWY.num (41)

Przykład 3:jeśli uruchomiłeś DELETE mytable numer =104;
W wyzwalaczu DELETE odwołujesz się do OLD.num (104)

Użyj czegoś takiego:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 sposoby na wyświetlenie wszystkich procedur składowanych w MySQL

  2. jak wyprowadzić rowName na podstawie tabeli łączącej?

  3. Błąd podczas tworzenia procedury mysql CRUD

  4. Dynamiczne połączenie z bazą danych MySQL dla Entity Framework 6

  5. Czy standardowe połączenie mysql przez port 3306 jest bezpieczne w Sequel Pro?