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

MySQL - Spustí aktualizaci sloupce v jiné tabulce po vložení, kde vyhovuje jiným hodnotám

V row spouštěče máte přístup ke dvěma verzím upravovaného řádku:OLD obsahuje řádek tak, jak byl (pokud existoval) a NEW obsahuje řádek tak, jak bude (pokud bude existovat.)

Aby váš spouštěč fungoval tak, jak jste popsali, měli byste podmínit WHERE klauzule používající hodnoty z NEW , asi takhle:

CREATE TRIGGER update_loyalty_points
  AFTER INSERT ON CWUserOwnsGame
  FOR EACH ROW
    UPDATE CWUsers
      SET loyaltyPoints = loyaltyPoints +
        (SELECT loyaltyPoints
          FROM CWGameList
          WHERE gameConsole = NEW.cName
            AND gameName = NEW.gName)
      WHERE username = NEW.uName;

Předpokládal jsem, že jste své sloupce mezi tabulkami pojmenovali konzistentně. Všimněte si, že správné sloupce v NEW mají stejné názvy jako sloupce v CWOwnsGame .




  1. Jak číst a aktualizovat databázi SQLite pomocí ListView v Androidu?

  2. Funkce DBTIMEZONE v Oracle

  3. Můžeme vytvořit funkční indexy v MySql pro funkce VELKÁ a LOWERCASE

  4. Optimalizace dotazů v PostgreSQL. Základy VYSVĚTLENÍ – 1. část