08 Августа 2022 16:22 
Заработай шерингом
Навигация
 +  - 
Скачать игры
Сейчас на сайте
05.08.2022
zacqawert
3 дней
offline
05.08.2022
Aloha123
3 дней
offline
05.08.2022
Maxord
3 дней
offline
31.07.2022
sebrina
1 неделя
offline
30.07.2022
Warhangel
1 неделя
offline
Последние фото
Game of Blocks : WesterosCraft and Game of Thrones
Game of Blocks : Wes...
Альбом: Скриншоты

Вынос трёх пати куполом
Вынос трёх пати куполом
Альбом: Скриншоты



Альбом: Флора

Последние видео
Видео LIVE 24/7 Rolling Cam Venice : The most beautiful Live Cam in Venice Italy - Livecam en direct

Онлайн камеры:  LIVE 24/7 Rolling Cam Venice

Видео Rolling Cam World : Rolling Cam World - Live Webcam around the World

Онлайн камеры:  Rolling Cam World

Видео EarthCam Live: Times Square in 4K : Watch live streaming video in 4K of Times Square, New York City.

Онлайн камеры:  EarthCam Live: Times Square in 4K

Наша кнопочка
FAQ7.ru
Код:
RSS каналы
Новости
Комменты
Форум
Статьи
Фото
Файлы
Ссылки
Объявления
Реклама
Регистрация сайта в каталогах, раскрутка и оптимизация сайта, контекстная реклама
Автор темы: Warhangel
ID темы: 761
Информация о теме:
Имеются 1 сообщений по данной теме, которая была просмотрена 3893 раз.
Реклама
Обменник Обменник
Просмотр темы
Логин:
Пароль:  
Форум » Тематические » Программирование
Просмотр темы
Текущий рейтинг: (Всего: 0 голосов)  
Ответить
Иконка 
Инструкция COMMIT
Наверх Распечатать сообщение #1
Опубликовано 09-05-2011 05:10
Аватар пользователя

Супер Администратор



Сообщений: 2621
Вас поблагодарили: 22
раз(а) в 22 сообщениях

Зарегистрирован: 24.03.10
Со дня регистрации: 4520
Откуда: Россия

Скрыть награды


Пожаловаться на это сообщение 

Инструкция COMMIT

Инструкция COMMIT явным образом закрывает открытую транзакцию и делает изменения в базе данных постоянными. Открываться транзакции могут неявно, например при выполнении инструкций INSERT, UPDATE или DELETE, или явно, с помощью инструкции START. В любом случае открытая транзакция закрывается явно командой COMMIT

Синтаксис SQL2003

COMMIT [WORK] [AND [NO] CHAIN]

Ключевые слова

COMMIT [WORK]

Заканчивает текущую открытую транзакцию и записывает данные, которыми манипулировала транзакция, в базу данных. Необязательное ключевое слово WORK является пустым, не оказывает никакого влияния. AND [NO] CHAIN

Параметр AND CHAIN указывает, что СУРБД должна работать со следующей транзакцией так, как если бы она была частью текущей транзакции. В результате эти две транзакции, будучи отдельными частями работы, совместно используют общую среду транзакции (например, уровень изоляции). Если использовать необязательное ключевое слово N0, СУРБД получит явное указание использовать действия, принятые в стандарте ANSI по умолчанию. Слово COMMIT без других ключевых слов функционально эквивалентно инструкции COMMIT WORK AND NO CHAIN.

Общие правила

В простых случаях вы будете осуществлять транзакции (т. е. выполнять код SQL, который манипулирует данными и объектами базы или изменяет их) без явного их объявления. Однако лучше всего управлять транзакциями, если явно включить их в инструкцию COMMIT. Поскольку записи и даже целые таблицы могут оказаться заблокированы на время выполнения транзакции, чрезвычайно важно, чтобы транзакции выполнялись как можно быстрее. Следовательно, ручной запуск команды COMMIT с транзакцией может помочь справиться с проблемами, связанными с одновременным использованием базы и блокировкой.

Советы и хитрости программирования

Самая важная хитрость состоит в том, чтобы понять, что некоторые базы данных выполняют автоматические неявные транзакции, а другие базы требуют явного их указания. Если вы сделаете необоснованное допущение, что платформа использует один метод выполнения транзакций, а не другой, вы можете за это поплатиться. Следовательно, при переходе с одной платформы на другую вы должны использовать стандартный, заранее установленный метод обращения с транзакциями. Мы рекомендуем всегда использовать явные транзакции с инструкцией START TRAN в начале (если платформа ее поддерживает) и COMMIT или ROLLBACK в конце.

Помимо завершения одной или нескольких операций по манипулированию данными инструкция COMMIT оказывает интересное влияние на другие аспекты транзакции, Во-первых, она закрывает все связанные с ней открытые курсоры. Во-вторых, все временные таблицы, для которых указано предложение ON COMMIT DELETE ROWS (дополнительное предложение в инструкции CREATE TABLE), очищаются. В-третьих, проверяются все отложенные ограничения (deferred constraints). Если хоть одно из них не выполняется, транзакция отменяется. И наконец, снимаются все блокировки, созданные при транзакции. Пожалуйста, обратите внимание, что в SQL2003 определяется, что транзакции открываются неявно при выполнении следующих инструкций:

ALTER

CLOSE

COMMIT AND CHAIN

CREATE

DELETE

DROP

FETCH

FREE LOCATOR

GRANT

HOLD LOCATOR

INSERT

OPEN

RETURN

REVOKE

ROLLBACK AND CHAIN SELECT

START TRANSACTION

UPDATE


Если вы не открыли явным образом транзакцию при запуске одной из указанных выше команд, то в соответствии со стандартом платформа СУРБД откроет транзакцию сама.

DB2

В DB2 поддерживается стандарт, за исключением Предложения AND [NO] CHAIN. MySQL

В MySQL команда COMMIT и транзакции поддерживаются только в таблицах InnoDB. Предложение AND [NO] CHAIN не поддерживается.

Oracle

В Oracle поддерживается стандарт, за исключением предложения AND [NO] CHAIN. Кроме этого, в Oracle есть пара расширений стандартной инструкции.

COMMIT [WORK] [{COMMENT 'текст' | FORCE 'текст',[, int]}];


Где:

COMMENT 'текст'

Связывает с текущей транзакцией комментарий. 'Текст' - это литеральная строка длиной до 255 символов. Текстовая строка, на случай отмены транзакции, хранится в представлении-словаре данных Oracle DBA_2PC_PENDING с ID транзакции.

FORCE 'текст ' /, int]


Позволяет вручную выполнить сомнительную распределенную транзакцию. 'Текст' - это литеральная строка, определяющая локальный или глобальный ID транзакции. Определить ID транзакции можно, послав запрос к представлению-словарю данных Oracle DBA_2PC_PENDING. Необязательный параметр int представляет собой целое число, которое явным образом присваивает транзакции системный помер изменения (system change number, SCN). Если параметр int. не указывается, транзакция выполняется с текущим SCN.

SQL Server

SQL Server поддерживает предложение AND [NO] CHAIN. SQL Server поддерживает ключевое слово TRANSACTION как эквивалент слова WORK. Синтаксис следующий.

COMMIT {TRAN[SACTI0N] [имя.транзакции] | [WORK]}


Платформа Microsoft SQL Server позволяет создавать специфические именованные транзакции с помощью инструкции START TRAN. Синтаксическая конструкция COMMIT TRANSACTION позволяет явно указать имя транзакции при ее закрытии или для сохранения имени транзакции в переменной. Любопытно, что SQL Server все равно выполняет только самую последнюю открытую транзакцию, не учитывая введенное имя транзакции.

Когда вы используете команду COMMIT WORK, SQL Server завершает все открытые транзакции и записывает все изменения в базу данных. При использовании команды COMMIT WORK вы можете не указывать имя транзакции.
 Offline
 
Посетить сайт автора
Цитировать
Ответить
Здесь присутствуют: 1 (пользователей: 0, гостей: 1)

« Предыдущая тема | Следующая тема »
 RSS Перейти на форум:
Розыгрыши 728х90

Последние объявления
ФотоЗаголовокГородРазмещено
ПАО «Уралкалий» реализует невостребованные ТМЦ в ассортименте
• Хозяйство - Оборудование Цена: 1 1
Пермь03.08.2022
(на 1 месяц)
ПАО «СИБУР ХОЛДИНГ» реализует невостребованные ТМЦ
• Хозяйство - Оборудование Цена: 1 1
Тюмень27.07.2022
(на 1 месяц)
АО «КОНАР» реализует невостребованные ТМЦ в ассортименте
• Хозяйство - Оборудование Цена: 1 1
Челябинск13.07.2022
(на 1 месяц)
Средство похудения с помощью проверенной программы LiDa
• Для дома - Здоровье Цена: 1 1
Москва24.11.2021
(на 24 месяца)
Аптека поможет убрать живот быстро и предлагает капсулы для снижения аппетита
• Для дома - Здоровье Цена: 1 1
Москва25.08.2021
(на 24 месяца)
Облако тегов тем форума
Arcadia Of My Youth, Опасности на торговых маршрутах, Адреналин: Авто-поиск РБ в Зале Иллюзий, RTV (rock the vote) для Source Mod, Профессиональный Майнинг, Чит-коды (cheats) Far Cry 2, Официальные предупреждения в свете скорого запуска акциона за реальные деньги, Aion: дюп через склад пета, Что хорошего Путин сделал для России? (со статистикой), Nasdaq запускает индекс индустрии децентрализованного финансирования, Квест на Overlord, Чиплеты - революционная технология проектирования и производства чипов от компании AMD, Lineage II Arena: Seven Signs Battle - Тестовый MOBA-ивент, Supplier of Reagants, Игромир 2013: Все главные игровые премьеры года!
Главная Статьи Файлы Форум Ссылки Новости Фотогалерея Объявления Видео Файлобменник Гороскоп Торренты Радио Видеочат
Яндекс.Метрика
Powered by PHP-Fusion copyright © 2002 - 2022 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.