Mysql
 sql >> Base de données >  >> RDS >> Mysql

Déclencheurs pour connecter plusieurs tables

  1. MySql ne permet pas d'apporter des modifications dans un code de déclencheur à la même table sur laquelle vous avez ce déclencheur
  2. Vous pouvez surmonter cette limitation en modifiant une valeur de colonne d'une ligne insérée à l'aide de BEFORE événement plutôt que AFTER .
  3. Maintenant, pour traiter les valeurs de colonne d'une ligne insérée dans MySql, vous devez utiliser NEW mot-clé.

Cela étant dit, votre déclencheur devrait ressembler à

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

Voici SQLFiddle démo