- Development
- Business
- It and software
- Personal development
- Design
- Marketing
- Beauty
- Photography and video
- Health and sport
- Music
- Education
- Test prep
- Languages
- Work on the computer
- Construction and repair
- Cooking
- Agriculture
- Freelance
- Traffic rules and driving
- Games
- School education
- Professional orientation
- Sewing and leather work
- Handiwork
- Stone and carpentry
- Interview
- Fishing and hunting
- Countries
SQL запросы. SQL команды RELEASE и SAVEPOINT: транзакции с именем/вложенные и контрольные точки
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-m...
Текстовая версия: http://zametkinapolyah.ru/zame....tki-o-mysql/tema-15-
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
SELECT * FROM City LIMIT 10;
-- Создаем транзакцию с именем при помощи команды SAVEPOINT
SAVEPOINT transact1;
-- Посмотрим первых 10 записей из таблицы City
SELECT * FROM City LIMIT 10;
-- Удалим одну запись
DELETE FROM city WHERE id = 2;
SELECT * FROM City LIMIT 10;
-- Из другого терминала:
-- Посмотрим на первых 10 записей
SELECT * FROM city LIMIT 10;
-- Пока вы не выполните команду RELEASE SAVEPOINT, строка не будет удалена
RELEASE transact1;
-- Посмотрим на первых 10 записей после подтверждения транзакции
SELECT * FROM city LIMIT 10;
--Начинаем транзакцию с именем transact1
SAVEPOINT transact1;
-- Выберем первых 10 записей из таблицы City
SELECT * FROM city LIMIT 10;
-- Удаляем третью строку из таблицы city
DELETE FROM city WHERE id = 3;
-- Посмотрим на первых 10 записей
SELECT * FROM city LIMIT 10;
-- Пока вы не выполните команду ROLLBACK, транзакция не будет завершена, а вы будете видеть все изменения
ROLLBACK;
-- Посмотрим на первых 10 записей после подтверждения транзакции, вы увидите
SELECT * FROM city LIMIT 10;
--Начинаем транзакцию с именем transact1
SAVEPOINT transact1;
-- Выберем первых 10 записей из таблицы City
SELECT * FROM city LIMIT 10;
-- Удаляем третью строку из таблицы city
DELETE FROM city WHERE id = 3;
-- Посмотрим на первых 10 записей и увидим
SELECT * FROM city LIMIT 10;
-- Пока вы не выполните команду ROLLBACK TRANSACTION TO SAVEPOINT,
-- отката изменений не произойдет, и вы будете видеть все изменения
ROLLBACK TRANSACTION TO SAVEPOINT transact1;
-- Посмотрим на первых 10 записей
SELECT * FROM city LIMIT 10;
-- Хочу обратить ваше внимание на то, что последний запрос SELECT будет выполняться в рамках транзакции transact1, так как мы сделали откат до метки transact1, то есть отменили все запросы, начиная с SAVEPOINT transact1, но транзакцию не завершили.