Ei! Tudo bem, Riquelme?
Claro, vamos direto ao ponto: inserção condicional é quando você usa um INSERT junto com um SELECT para inserir (ou atualizar) dados apenas quando certas condições do banco são atendidas, normalmente baseadas no resultado de uma consulta.
No SQLite, quando você usa:
INSERT OR REPLACE INTO Estoque (ID_produto, quantidade)
SELECT Vendas.ID_produto, Estoque.quantidade - Vendas.quantidade
FROM Vendas
JOIN Estoque ON Vendas.ID_produto = Estoque.ID_produto;
No código é sobre:
Se o ID_produto já existe na tabela, ele substitui a linha.
Se não existir, ele insere uma nova.
- A “condição” vem do
JOIN
Só entram na operação os produtos que existem ao mesmo tempo na tabela Vendas e na tabela Estoque.
Ou seja: o comando só atualiza produtos que realmente foram vendidos e estão registrados no estoque.
Por isso chamamos de inserção condicional: o INSERT só acontece para os registros retornados pelo SELECT e esse SELECT só retorna produtos que atendem às condições do JOIN.
Espero ter ajudado e qualquer dúvida, compartilhe no fórum.
Até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado!