sql >> Databasteknik >  >> RDS >> Mysql

Triggers för att ansluta flera bord

  1. MySql tillåter inte att göra ändringar inom en triggerkod till samma tabell som du har den triggern på
  2. Du kan övervinna denna begränsning genom att ändra ett kolumnvärde för en rad som infogas med BEFORE händelse snarare än AFTER .
  3. Nu för att adressera kolumnvärden för en rad som infogas i MySql måste du använda NEW sökord.

Med det sagt ska din trigger se ut

CREATE TRIGGER tg_test1_insert
BEFORE INSERT ON test1 
FOR EACH ROW
  SET NEW.originindex = 
     (
       SELECT value 
         FROM cities 
        WHERE city = NEW.origin
     );

Här är SQLFiddle demo




  1. Beräknar medelvärden över avsnitt av datum/tid

  2. Hur hämtar man mikrosekunder eller millisekunder från MySQL aktuell tid?

  3. Php/MySql-arraysökning med ã, š, é, ë, ú, ü, í, ž

  4. MySQL – MariaDB – Skriver den allra första lagrade proceduren