CREATE TABLE FUNCIONARIO(
MATRICULA NUMBER PRIMARY KEY,
NOME VARCHAR2(100)
);
CREATE TABLE DEPENDENTE(
CPF VARCHAR2(14) PRIMARY KEY,
NOME VARCHAR2(100),
MATRICULA_FUNCIONARIO NUMBER,
CONSTRAINT fk_dependente_matricula
FOREIGN KEY (matricula_funcionario)
REFERENCES FUNCIONARIO(matricula)
);
CREATE OR REPLACE TRIGGER QUANTIDADE_DE_DEPENDENTE
BEFORE INSERT OR UPDATE ON DEPENDENTE
FOR EACH ROW
BEGIN
IF:NEW.MATRICULA_FUNCIONARIO IN (SELECT MATRICULA_FUNCIONARIO FROM DEPENDENTE HAVING COUNT(MATRICULA_FUNCIONARIO) >= 3 GROUP BY MATRICULA_FUNCIONARIO)
THEN RAISE_APPLICATION_ERROR(-20000, 'Funcionario Excedeu a Quantidade de Dependentes');
END IF;
END;
Boa noite, estou com dificuldades em criar triggers no sql oracle.
Minha dificuldade é criar um trigger que so permita que um funcionario tenha no maximo 3 dependetes, acredito que o erro seja no select dentro do if, quando eu troco por valores como (1,2,3) esses valores servem como matriculas de funcionários que não é mais permitido adicionar dependentes.