sql >> Database >  >> RDS >> Mysql

MySQL - Trigger om kolom in een andere tabel bij te werken na invoeging waar het aan andere waarden voldoet

In een row trigger je toegang hebt tot twee versies van de rij die wordt gewijzigd:OLD bevat de rij zoals deze was (als het bestond), en NEW bevat de rij zoals deze zal zijn (als het zal bestaan.)

Om je trigger te laten werken zoals je hebt beschreven, zou je de WHERE clausule met waarden uit NEW , zoals zo:

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;
code>

Ik ben ervan uitgegaan dat je je kolommen consequent tussen tabellen hebt genoemd. Merk op dat de juiste kolommen in NEW hebben dezelfde namen als de kolommen in CWOwnsGame .




  1. Laravel 5.5 Consolideer migraties met productiedatabase

  2. MySQL-replicatie:als ik geen databases specificeer, logt log_bin dan ALLES?

  3. MYSQL - krijg een rij voor elk jaar, met een totaalbedrag voor elke maand

  4. Hulp nodig bij het installeren van MySQL voor Python