Intern
Վեբ ծառայությունում անհրաժեշտ է գրանցել պատվեր և հանել մնացորդը պահեստից այնպես, որ կամ երկու գործողությունները պահպանվեն, կամ ոչ մեկը: Որ SQL հրամաններն են օգտագործվում հարցումների հավաքածուն շրջափակելու համար և ինչպես վարվել սխալի դեպքում հաստատումից առաջ?
sobes.tech AI
Պատասխան AI-ից
Для обеспечения атомарности операций записи заказа и списания остатка со склада в SQL используют транзакции. Основные команды для обрамления набора запросов:
BEGINилиSTART TRANSACTION— начинает транзакцию.- Выполнение необходимых запросов (например, INSERT заказа и UPDATE склада).
COMMIT— фиксирует изменения, если все операции прошли успешно.ROLLBACK— отменяет все изменения в транзакции при возникновении ошибки до фиксации.
Пример на SQL:
BEGIN;
INSERT INTO orders (...) VALUES (...);
UPDATE stock SET quantity = quantity - ? WHERE product_id = ?;
-- если ошибок нет
COMMIT;
-- если ошибка
ROLLBACK;
В коде при обнаружении ошибки до вызова COMMIT нужно вызвать ROLLBACK, чтобы откатить все изменения и сохранить целостность данных.