Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL - Trigger zum Aktualisieren der Spalte in einer anderen Tabelle nach dem Einfügen, wo sie andere Werte erfüllt

In einer row Trigger haben Sie Zugriff auf zwei Versionen der geänderten Zeile:OLD enthält die Zeile, wie sie war (falls vorhanden) und NEW enthält die Zeile, wie sie sein wird (wenn es wird existieren.)

Damit Ihr Trigger wie beschrieben funktioniert, würden Sie WHERE konditionieren -Klausel mit Werten aus NEW , etwa so:

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;

Ich bin davon ausgegangen, dass Sie Ihre Spalten zwischen den Tabellen konsistent benannt haben. Beachten Sie, dass die richtigen Spalten in NEW dieselben Namen haben wie die Spalten in CWOwnsGame .