Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Gatilhos para conectar várias tabelas

  1. MySql não permite fazer alterações em um código de gatilho na mesma tabela na qual você tem esse gatilho
  2. Você pode superar essa limitação alterando o valor de uma coluna de uma linha inserida usando BEFORE evento em vez de AFTER .
  3. Agora, para endereçar valores de coluna de uma linha que está sendo inserida no MySql, você precisa usar NEW palavra-chave.

Dito isto, seu gatilho deve se parecer com
CREATE TRIGGER tg_test1_insert
BEFORE INSERT ON test1 
FOR EACH ROW
  SET NEW.originindex = 
     (
       SELECT value 
         FROM cities 
        WHERE city = NEW.origin
     );

Aqui está SQLFiddle demonstração