25 Апреля 2024 05:28 
Заработай шерингом
Навигация
 +  - 
Скачать игры
Сейчас на сайте
24.04.2024
Yaposhka
14:11:32
offline
24.04.2024
V1ad
16:42:28
offline
22.04.2024
Apollo
2 дней
offline
19.04.2024
Samurai97
5 дней
offline
19.04.2024
Aloha123
5 дней
offline
Последние фото
Game of Blocks : WesterosCraft and Game of Thrones
Game of Blocks : Wes...
Альбом: Скриншоты

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



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

Последние видео
Видео THE WORLD LIVE -  since 2008 | earthTV : So thank you for the many views of this stream, please enjoy the original classic television version of THE WORLD LIVE, first uploaded here for you in 2008 with just 7 locations.

Онлайн камеры:  THE WORLD LIVE - since 2008 | earthTV

Видео The Best Of Norway's Railway Cab Views : I\

Онлайн камеры:  The Best Of Norway's Railway Cab Views

Видео 130 LIVE World Cameras : 130 LIVE World Cameras, Relaxing Music, Map, Daily Timelapse - Your Armchair Travel

Онлайн камеры:  130 LIVE World Cameras

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

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



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

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

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


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

Инструкция 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
КировВчера в 21:00:04
(на 1 месяц)
АО «Карельский окатыш», АО «Олкон» и ООО «Яковлевский ГОК» продают неликвиды
• Хозяйство - Сырье и материалы Цена: 1 1
Другой18.04.2024
(на 1 месяц)
АО «Обуховский завод» реализует неликвиды
• Хозяйство - Сырье и материалы Цена: 1 1
Санкт-Петербург29.03.2024
(на 1 месяц)
Облако тегов тем форума
Создание точки восстановления системы в ручную Windows 7., Катализаторы роста биткоина. Когда ждать «to the moon»?, DotA 2: общий гайд по героям (часть 2), Система обнаружения и погашения DDOS-атаки http флудом., Как приручить волка в ArcheAge?, Blizzard будет агрессивно банить ботоводов, Открытие соединения с базой данных, Аналитик Bitwise: «биткоин сейчас повторяет динамику золота в 1970-е годы», Месяц Кошмаров в русском Lineage 2, ArcheAge - китайский трейлер игры, Кем играть в archeage?, Письмецо одной девушки из Германии подруге в Россию., Скрипт для слива голосов на определенный id, Аналитики JPMorgan одобрили использование биткоина в качестве хеджирующего актива, Цифровая валюта Багамских островов будет запущена уже в октябре
Главная Статьи Файлы Форум Ссылки Новости Фотогалерея Объявления Видео Файлобменник Гороскоп Торренты Радио Видеочат
Powered by PHP-Fusion copyright © 2002 - 2024 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.