TGViewer
SQL Ready | Базы Данных SQL Ready | Базы Данных @sql_ready · 17.5K subscribers
Post #1457 2.07K
SAVEPOINT: частичный откат без пересборки всей транзакции!

При работе с многошаговыми транзакциями важно уметь откатывать только часть выполненных действий. SAVEPOINT даёт такой контроль в большинстве СУБД. Пример ниже оформлен для Oracle, но принцип похож и в других диалектах.

Создаём таблицу:
CREATE TABLE operations (
id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
description VARCHAR2(200),
amount NUMBER(10,2) CHECK (amount > 0)
);


Добавляем первую операцию:
INSERT INTO operations (description, amount)
VALUES ('Initial payment', 150.00);


Фиксируем точку сохранения:
SAVEPOINT sp_step1;


Выполняем шаг, который формально корректен, но позже мы решаем его отменить (например, неверная сумма):
INSERT INTO operations (description, amount)
VALUES ('Wrong amount', 1000.00);


Понимаем, что значение было ошибочным, и откатываемся к точке сохранения, не трогая всю транзакцию целиком:
ROLLBACK TO sp_step1;


Выполняем корректную альтернативу:
INSERT INTO operations (description, amount)
VALUES ('Corrected entry', 75.00);


Фиксируем изменения и проверяем результат:
COMMIT;

SELECT * FROM operations;


🔥 Такой подход позволяет в одной транзакции безопасно откатывать только ошибочные шаги, сохраняя корректные операции.

➡️ SQL Ready | #практика
  • ❤ 14
  • 👍 8
  • 🔥 6
  • 🤝 1
More from @sql_ready
  1. Oct 9, 2026❤️ sqlite-postgres-cours — большой практический курс по базам данных! Материал ведёт от пе…
  2. Oct 8, 2026Почему UNIQUE допускает несколько NULL в PostgreSQL! Ограничение UNIQUE гарантирует уникал…
  3. Oct 7, 2026📂 Шпаргалка по паттернам распределённых систем! Например, Replication повышает доступност…
  4. Oct 6, 2026Проверяйте связи с учётом периода! В PostgreSQL 18 связь может учитывать ещё и период его…
  5. Oct 6, 2026👍 Устройство PostgreSQL — подробная документация на русском языке! Материалы посвящены не…
  6. Oct 5, 2026COUNT(*) в PostgreSQL: MVCC, visibility map и стоимость выполнения! В PostgreSQL точный CO…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →