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

Jak udělat trigger, který implementuje tuto podmínku?

Zde je spouštěč pro tento účel:

DELIMITER $$
CREATE trigger update_money_after_paym
AFTER INSERT ON paym
FOR EACH ROW
BEGIN
    IF (NEW.table1 IS NOT NULL AND NEW.table2 IS NOT NULL) THEN
        UPDATE money SET total_money = total_money + 50 WHERE username = NEW.username;
    END IF;
END;
$$
DELIMITER;

Kód se spustí po každém vložení do tabulky paym . Pokud má nově vložený záznam oba sloupce table1 a table2 nastaveno na jinou než NULL hodnoty, pak spouštěč spustí UPDATE dotaz, který přidá 50 do sloupce total_money v tabulce money pro záznam, který má stejné username jako nově vložený záznam do paym .




  1. Oracle Kombinujte několik sloupců do jednoho

  2. Mám vytvořit nové pole v tabulce nebo jen vybrat MAX druhé tabulky

  3. Nelze jednoduše použít název tabulky PostgreSQL (vztah neexistuje)

  4. Jak extrahovat podřetězec z řetězce v Oracle/SQLite