Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 40 из 52 · 9 мин
Всё или ничего: BEGIN, COMMIT, ROLLBACK и точки сохранения.
Вчера сайт завис, и в базе остался пустой заказ без позиций. Как так?
Две команды выполнились по отдельности. Оберни их в транзакцию: либо обе, либо ни одной.
BEGIN · COMMITBEGIN начинает транзакцию, COMMIT фиксирует все её изменения разом. До COMMIT другие подключения изменений не видят.BEGIN;
INSERT INTO orders (id, customer_id, staff_id, created_at) VALUES (23, 10, 3, '2025-11-12 09:00');
INSERT INTO order_items VALUES (23, 4, 1, 220);
COMMIT;
SELECT o.id, oi.product_id FROM orders o JOIN order_items oi ON oi.order_id = o.id WHERE o.id = 23;ROLLBACKBEGIN;
DELETE FROM reviews;
ROLLBACK;
SELECT count(*) AS reviews_still_here FROM reviews;SAVEPOINTSAVEPOINT имя внутри транзакции и ROLLBACK TO имя — откатить только часть, до этой точки.BEGIN;
UPDATE products SET price = 155 WHERE id = 1;
SAVEPOINT before_delete;
DELETE FROM products WHERE id = 16;
ROLLBACK TO before_delete;
COMMIT;
SELECT name, price FROM products WHERE id IN (1, 16);Всё, что должно случиться вместе, — в одну транзакцию. Ошибка внутри — ROLLBACK.
В транзакции оформи заказ номер 23: покупатель 10, продавец 3, время '2025-11-12 09:00', и одна позиция — блокнот (товар 4), 1 шт. по 220. Зафиксируй транзакцию.
BEGIN — пока нетCOMMIT — пока нетcategories — категории товаровid, nameproducts — товарыid, name, category_id, price, weight_g, is_available, added_oncustomers — покупателиid, name, email, city, phone, birthday, registered_onstaff — сотрудникиid, name, role, salary, hired_on, manager_idorders — заказыid, customer_id, staff_id, created_at, statusorder_items — позиции заказовorder_id, product_id, quantity, unit_pricereviews — отзывыid, customer_id, product_id, rating, comment, created_onВыберите один ответ.
Что делает ROLLBACK?
Выберите один ответ.
Что значит «атомарность» транзакции?
Проверяем состояние обучения…