He aquí un ejemplo:
Código sql:
Ver originalDROP TRIGGER IF EXISTS REGLOCALIDAD;
DELIMITER $$
CREATE TRIGGER REGLOCALIDAD BEFORE INSERT ON VIAJE FOR EACH ROW
BEGIN
IF (SELECT NOMBRELOCAL FROM LOCALIDAD WHERE COD_LOCAL = NEW.ORIGEN) IS NULL THEN
INSERT INTO LOCALIDAD(COD_LOCAL, NOMBRELOCAL)
VALUES(NEW.ORIGEN, CONCAT('LOCALIDAD ', CAST(NEW.ORIGEN AS CHAR(4))));
END IF;
IF (SELECT NOMBRELOCAL FROM LOCALIDAD WHERE COD_LOCAL = NEW.DESTINO) IS NULL THEN
INSERT INTO LOCALIDAD(COD_LOCAL, NOMBRELOCAL) VALUES(NEW.DESTINO,CONCAT('LOCALIDAD ', CAST(NEW.ORIGEN AS CHAR(4))));
END IF;
END$$
DELIMITER ;
Es un trigger que se dispara al ingresar un registro en la tabla VIAJE. Si el código de la localidad origen o destino no existen en la tabla LOCALIDAD, lo inserta.