19 Июля 2018 20:09 
Навигация
 +  - 
Скачать игры
Сейчас на сайте
19.07.2018
Warhangel
01:16:06
offline
19.07.2018
matatumba
01:26:00
offline
19.07.2018
Ivan-St...
11:00:04
offline
19.07.2018
djekiwa...
15:20:51
offline
16.07.2018
tuvorst
3 дней
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 сообщений по данной теме, которая была просмотрена 2923 раз.
Реклама
livecoin Обменник
Просмотр темы
Логин:
Пароль:  
Форум » Тематические » Программирование
Просмотр темы
Текущий рейтинг: (Всего: 0 голосов)  
Ответить
Иконка 
Инструкция COMMIT
Наверх Распечатать сообщение #1
Опубликовано 09-05-2011 05:10
Аватар пользователя

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



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

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

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


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

Инструкция 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
Другой12.07.2018
(на 1 месяц)
Филиал «КЧХК» АО «ОХК «УРАЛХИМ» в Кирово-Чепецке реализует неликвиды
• Хозяйство - Оборудование Цена: 1 1
Киров24.06.2018
(на 1 месяц)
ПАО «Казаньоргсинтез» реализует неликвиды в ассортименте
• Хозяйство - Оборудование Цена: 1 1
Казань22.06.2018
(на 1 месяц)
ОАО ТКЗ «Красный котельщик» продает металлопрокат в ассортименте
• Хозяйство - Сырье и материалы Цена: 1 1
Ростов-на-Дону20.06.2018
(на 1 месяц)
Купим автоматическую систему газового пожаротушения
• Хозяйство - Оборудование Цена: 1 1
Красноярск24.04.2018
(на 6 месяцев)
Облако тегов тем форума
Как наматывать боксерский бинт, Жертвы собственных изобретений, Технология SATA 3.2 обеспечит скорость до 2 ГБ/с, ЛЕТНИЙ ИНТЕНСИВ!, XLGAMES анонсировали крупное обновление игры, Знали ли Вы насколько полезна клавиша Win на Вашей клавиатуре?, Изменение шрифта и его размера в файле Interface.xdat, Бесконечные HP, Корейская версия TERA получит новое поле боя, Учёным удалось вернуть слух глухой лабораторной мыши, Квест на Prophet, Jewelry Augmentation (Аугментация бижутерии), Адаптируем SQL файл для своей сборки, Как улучшить игру с помощью Кристаллов Улучшения, Krakena.net - продажа золота Archeage и других игр! Набор поставщиков!
Главная Статьи Файлы Форум Ссылки Новости Фотогалерея Объявления Видео Файлобменник Гороскоп Поиск по торрентам Радио Видеочат
Яндекс.Метрика
Powered by PHP-Fusion copyright © 2002 - 2018 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.