Intern
Num serviço web, é necessário registar um pedido e deduzir o saldo do stock de forma que ambas as operações sejam mantidas ou nenhuma. Quais comandos SQL são utilizados para envolver um conjunto de consultas, e como agir em caso de erro antes da confirmação?
sobes.tech IA
Resposta da IA
Para garantir a atomaridade das operações de registo de pedidos e dedução do saldo do stock em SQL, utilizam-se transações. Os comandos principais para envolver um conjunto de consultas são:
BEGINouSTART TRANSACTION— inicia a transação.- Executar as consultas necessárias (por exemplo, INSERT de pedido e UPDATE de stock).
COMMIT— confirma as alterações se todas as operações correrem bem.ROLLBACK— desfaz todas as alterações na transação em caso de erro antes de confirmar.
Exemplo em SQL:
BEGIN;
INSERT INTO orders (...) VALUES (...);
UPDATE stock SET quantity = quantity - ? WHERE product_id = ?;
-- se não houver erros
COMMIT;
-- se houver erro
ROLLBACK;
No código, ao detectar um erro antes de chamar COMMIT, deve-se chamar ROLLBACK para reverter todas as alterações e manter a integridade dos dados.