20 Октября 2018 22:17 
Навигация
 +  - 
Скачать игры
Сейчас на сайте
20.10.2018
bro.quarry
14:46:03
offline
19.10.2018
Warhangel
23:15:14
offline
17.10.2018
lazarev...
3 дней
offline
17.10.2018
exty4ka
3 дней
offline
13.10.2018
1425367...
1 неделя
offline
Последние фото
Game of Blocks : WesterosCraft and Game of Thrones
Game of Blocks : Wes...
Альбом: Скриншоты

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



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

Последние видео
Видео ТРИ СУДЬБЫ - Короткометражный фэнтези-боевик : Короткометражный CGI-фильм, посвященный игре The Elder Scrolls Online.

Игрофильмы:  ТРИ СУДЬБЫ - Короткометражный фэнтези-боевик

Видео Rhine Falls : Rhine Falls Live Camera streeeam

Онлайн камеры:  Rhine Falls

Видео Live Cam, Central Memorial Park, Calgary, Alberta : Central Memorial Park is a park located in central Calgary\

Онлайн камеры:  Live Cam, Central Memorial Park, Calgary, Alberta

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

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



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

Зарегистрирован: 24.03.10
Со дня регистрации: 3132
Откуда: Россия
Пол: Мужской

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


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

Инструкция 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
Барнаул18.10.2018
(на 1 месяц)
ООО «ЛУКОЙЛ-Нижневолжскнефть» реализует неликвиды
• Хозяйство - Сырье и материалы Цена: 1 1
Астрахань28.09.2018
(на 1 месяц)
ПАО «Уралкалий» (Пермский край) продает неликвиды в ассортименте
• Хозяйство - Оборудование Цена: 1 1
Пермь19.09.2018
(на 1 месяц)
Купим автоматическую систему газового пожаротушения
• Хозяйство - Оборудование Цена: 1 1
Красноярск24.04.2018
(на 6 месяцев)
Универсальный гипермаркет Gecsa
• Развлечения - Туризм Цена: 1 1
Казань06.11.2017
(на 24 месяца)
Облако тегов тем форума
Описание класса Копейщик, Ramona Flowers Vs Roxy, Адреналин: счетчик кланов, teXet TM-B410 – слайдер с двумя SIM-картами и большими кнопками, Квест на Scavenger, Создание своего суммона, Devil May Cry 5, Катакомбы и Некрополи, Панель доски объявлений, TERA - поля боя официально запущены в корейской версии, Описание класса Элементалист, Характеристики (Attribute), Dead Space 2. Рецензия., Как по подписи определить характер Проверь себя!, Проморолик нового обновления игры Miracle 5
Главная Статьи Файлы Форум Ссылки Новости Фотогалерея Объявления Видео Файлобменник Гороскоп Поиск по торрентам Радио Видеочат
Яндекс.Метрика
Powered by PHP-Fusion copyright © 2002 - 2018 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.