Reserve estoque apenas se ele realmente estiver disponível
Um usuário adicionou um item ao carrinho — o backend precisa reservar três unidades no estoque, mas apenas se realmente houver estoque suficiente. Se você fizer «ler estoque → verificar → gravar» como instruções separadas, duas transações paralelas podem ver o mesmo número e ambas reservar a última unidade.
Uma única atualização condicional resolve isso de forma atômica: tente aumentar reserved em três para o produto com id 1, mas apenas quando qty - reserved for pelo menos 3. Se nenhuma linha acabar atualizada — retorne «sem estoque» ao usuário.
Apenas INSERT/UPDATE/DELETE — não é preciso um SELECT no final.
Entre para ver seu histórico de envios
EntrarEntre para usar o AI Mentor
Entrar