N!ao compreendi por qual razão nao funciona utilizar o EXISTS tal como no exemplo da aula anterior.
delete from
tab_funcionario FC where
exists (select 1 from tab_rh_demitidos dem where dem.cod_funcionario = fc.cod_funcionario)
N!ao compreendi por qual razão nao funciona utilizar o EXISTS tal como no exemplo da aula anterior.
delete from
tab_funcionario FC where
exists (select 1 from tab_rh_demitidos dem where dem.cod_funcionario = fc.cod_funcionario)
Oi, Gustavo! Como vai?
É possível, sim, utilizar o EXISTS para solucionar o exercício. Porém, é importante excluir, primeiro, os registros de dependentes - caso contrário, teremos uma restrição de chave primária violada, afinal TAB_DEPENDENTE é vinculada diretamente à TAB_FUNCIONARIO, por meio do COD_FUNCIONARIO.
Tente executar primeiro esse comando:
DELETE FROM TAB_DEPENDENTE TD
WHERE EXISTS (
SELECT 1
FROM TAB_RH_DEMITIDOS D
WHERE D.COD_FUNCIONARIO = TD.COD_FUNCIONARIO
);
E então:
DELETE FROM TAB_FUNCIONARIO TF
WHERE EXISTS (
SELECT 1
FROM TAB_RH_DEMITIDOS D
WHERE D.COD_FUNCIONARIO = TF.COD_FUNCIONARIO
);
Deve funcionar normalmente.
Se tiver mais alguma dúvida, fico à disposição. Abraços!