1
resposta

Não entendi o código de interligação de tabelas

No caso, o código que conecta as duas tabelas para deletar itens

1 resposta

Oi Vitor, tudo certo? Pelo que pude entender, sua dúvida é em relação a esse comando que foi apresentado:

DELETE FROM PRODUTOS WHERE
CODIGO NOT IN (SELECT CODIGO_DO_PRODUTO FROM SUCOS_VENDAS.TABELA_DE_PRODUTOS);

Para explicar melhor o que foi feito, vamos separar esse comando em duas partes, começando pelo que está nos parênteses:

SELECT CODIGO_DO_PRODUTO FROM SUCOS_VENDAS.TABELA_DE_PRODUTOS

Esse trecho está selecionando (SELECT) todos os códigos de produto que estão na tabela de produtos do banco SUCOS_VENDAS, que nesse caso, seria um modelo, com o qual queremos “sincronizar” os dados do banco que estamos manipulando atualmente, o VENDAS_SUCOS. Agora, olhando para o resto do comando, o que está fora dos parênteses, temos:

 DELETE FROM PRODUTOS WHERE CODIGO NOT IN

Aqui estamos ordenando que, no banco que estamos manipulando atualmente, o VENDAS_SUCOS, em sua tabela PRODUTOS, sejam deletados todos os produtos que tenham um CODIGO que não exista dentre os códigos que buscamos no outro banco (nosso modelo, o VENDAS_SUCOS). Para isso usamos aquela comparação NOT IN, que vai observar os códigos da tabela PRODUTOS que não estão presentes na nossa seleção que veio do outro banco (SELECT CODIGO_DO_PRODUTO FROM SUCOS_VENDAS.TABELA_DE_PRODUTOS).

Desse modo todos aqueles produtos que não existem no banco modelo e existem no banco que estamos manipulando serão deletados, e teremos ambos os bancos sincronizados.

Espero ter solucionado sua questão.

Caso ainda tenha alguma dúvida, me coloco à disposição!

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software