- Разработка
- Бизнес
- ИТ и ПО
- Личностный рост
- Дизайн
- Маркетинг
- Красота
- Фотография и видео
- Здоровье и спорт
- Музыка
- Образование
- Подготовка к экзаменам
- Языки
- Работа на компьютере
- Строительство и ремонт
- Кулинария
- Сельское хозяйство
- Фриланс
- ПДД и вождение
- Игры
- Школьное образование
- Профессиональная ориентация
- Шитье и кожевенное дело
- Рукоделие
- Каменные и столярные работы
- Собеседование
- Рыбалка и охота
- Страны
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, но транзакцию не завершили.