sql >> Databasteknik >  >> RDS >> Mysql

MySQL - Utlösare för att uppdatera kolumn i en annan tabell efter infogning där den uppfyller andra värden

I en row trigger har du tillgång till två versioner av raden som ändras:OLD innehåller raden som den var (om det fanns) och NEW innehåller raden som den kommer att bli (om det kommer att finnas.)

För att få din trigger att fungera som du beskrev, skulle du villkora WHERE sats som använder värden från NEW , som så:

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;

Jag har antagit att du har namngett dina kolumner konsekvent mellan tabellerna. Observera att rätt kolumner i NEW har samma namn som kolumnerna i CWOwnsGame .




  1. Få poster med maxvärde för varje grupp av grupperade SQL-resultat

  2. PHP Multiple Dropdown Box Form Skicka till MySQL

  3. DISTINERA en kolumn i en databas

  4. Hur man hittar de datumformat som används för ett specifikt språk i SQL Server (T-SQL)