21 Апреля 2021 20:12 
Заработай шерингом
Навигация
 +  - 
Скачать игры
Сейчас на сайте
20.04.2021
Sacrame...
22:26:01
offline
20.04.2021
Warhangel
1 день
offline
19.04.2021
Doom
2 дней
offline
14.04.2021
theconq...
6 дней
offline
02.04.2021
atlande...
2 недель
offline
Последние фото
Game of Blocks : WesterosCraft and Game of Thrones
Game of Blocks : Wes...
Альбом: Скриншоты

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



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

Последние видео
Видео The Heretic: the complete short film : The Heretic is a short film created by Unity’s Demo team. After debuting its first part at GDC 2019, the completed short is now available to watch in its entirety.

Игрофильмы:  The Heretic: the complete short film

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

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

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

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

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

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



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

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

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


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

Инструкция 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.04.2021
(на 1 месяц)
Тайские Лекарства от целлюлита помагают сбросить лишний вес
• Для дома - Здоровье Цена: 1 1
Санкт-Петербург10.10.2020
(на 24 месяца)
Магазин абразивных материалов «Абразивмастер»
• Хозяйство - Оборудование Цена: 1 1
Москва17.06.2020
(на 24 месяца)
Самое лучшее для похудения помогают народные рецепты для похудения в аптеке
• Для дома - Здоровье Цена: 1 1
Москва20.02.2020
(на 24 месяца)
Аптека поможет похудеть эффективно и продает капсулы самая лучшая диета
• Для дома - Здоровье Цена: 1 1
Ярославль22.12.2019
(на 24 месяца)
Облако тегов тем форума
CryptoUK призывает Минфин Великобритании ускорить процесс регистрации компаний в FCA, Полный список команд не для ГМ, Гайд Друид PvP MoP 5.1.0, ArcheAge - новая порция подробностей о бета-тесте, Bounty Hounds, Scoria исходники защиты SPS, Flashbots: арбитражные боты MEV в Эфириуме заработали $314 млн с начала 2020 года, Продолжаем тему инопланетного вторжения, Руководство для NO-IP - Как сделать сервер онлайн, Разработан первый интубационный робот Kepler, Коды к игре Hearts of Iron 3, Thor, Обновление - 29.02.2012, Быстрая доставка препаратов для борьбы с ВГС, ArcheAge - Арок не будет!
Главная Статьи Файлы Форум Ссылки Новости Фотогалерея Объявления Видео Файлобменник Гороскоп Торренты Радио Видеочат
Яндекс.Метрика
Powered by PHP-Fusion copyright © 2002 - 2021 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.