sql >> Base de Datos >  >> RDS >> Mysql

Activadores para conectar varias tablas

  1. MySql no permite realizar cambios dentro de un código de activación en la misma tabla en la que tiene ese activador
  2. Puede superar esta limitación cambiando el valor de una columna de una fila que se inserta usando BEFORE evento en lugar de AFTER .
  3. Ahora, para abordar los valores de columna de una fila que se inserta en MySql, debe usar NEW palabra clave.

Dicho esto, tu gatillo debería verse como

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

Aquí está SQLFiddle demostración