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)
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!