Gente, eu tô tentando disparar um trigger… porém dá erro, fando o seguinte
"TRIGGER userIntoCommunity compilado
Warning: execução concluída com advertência
19/4 PLS-00103: Encontrado o símbolo “;” quando um dos seguintes símbolos era esperado:
if
"
O meu trigger tah assim:
CREATE OR REPLACE TRIGGER userIntoCommunity
AFTER
INSERT
ON funcionario
FOR EACH ROW
BEGIN
IF(:new.id_empresa_fk = 1) THEN
INSERT
INTO comunidade_has_funcionario(id_comunidade_fk, id_usuario_fk)
VALUES(4, :new.id_usuario_pk);
IF(:new.id_empresa_fk = 2) THEN
INSERT
INTO comunidade_has_funcionario(id_comunidade_fk, id_usuario_fk)
VALUES(5, :new.id_usuario_pk);
ELSE
INSERT
INTO comunidade_has_funcionario(id_comunidade_fk, id_usuario_fk)
VALUES(6, :new.id_usuario_pk);
END IF;
END;
Qual o banco de dados?
Se for MySQL é preciso alterar o DELIMITER
CREATE OR REPLACE TRIGGER userIntoCommunity
AFTER
INSERT
ON funcionario
FOR EACH ROW
DELIMITER $$
BEGIN
IF(:new.id_empresa_fk = 1) THEN
INSERT
INTO comunidade_has_funcionario(id_comunidade_fk, id_usuario_fk)
VALUES(4, :new.id_usuario_pk);
IF(:new.id_empresa_fk = 2) THEN
INSERT
INTO comunidade_has_funcionario(id_comunidade_fk, id_usuario_fk)
VALUES(5, :new.id_usuario_pk);
ELSE
INSERT
INTO comunidade_has_funcionario(id_comunidade_fk, id_usuario_fk)
VALUES(6, :new.id_usuario_pk);
END IF $$
END $$
DELIMITER ;
CREATE OR REPLACE TRIGGER userIntoCommunity
AFTER
INSERT
ON funcionario
FOR EACH ROW
BEGIN
IF(:new.id_empresa_fk = 1) THEN
INSERT
INTO comunidade_has_funcionario(id_comunidade_fk, id_usuario_fk)
VALUES(4, :new.id_usuario_pk);
ELSIF(:new.id_empresa_fk = 2) THEN
INSERT
INTO comunidade_has_funcionario(id_comunidade_fk, id_usuario_fk)
VALUES(5, :new.id_usuario_pk);
ELSE
INSERT
INTO comunidade_has_funcionario(id_comunidade_fk, id_usuario_fk)
VALUES(6, :new.id_usuario_pk);
END IF;
END userIntoCommunity;
/
se não funcionar, em casa vo baixar o oracle denovo :o)