No caso, o código que conecta as duas tabelas para deletar itens
No caso, o código que conecta as duas tabelas para deletar itens
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!