Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Что представляет собой блокировка?




Блокировки

Сеанс, заблокировавший таблицу, пользуется нормальным доступом; блокировка распространяются на другие сеансы, пытающиеся получить доступ к заблокированной таблице. Блокировка таблиц возможна только в транзакциях, блокировка вне транзакционного блока не приводит к ошибке, но установленная блокировка немедленно снимается.

Общий синтаксис:

  • LOCK [ TABLE ] таблица IN режим

режим::- { [ ROW | ACCESS ] { SHARE | EXCLUSIVE } | SHARE ROW EXCLUSIVE } MODE

  • LOCK [ TABLE ] таблица

устанавливает максимально жесткий режим блокировки (ACCESS EXCLUSIVE)

Уровни блокировок:

  • ACCESS SHARE MODE. Устанавливается автоматически командой SELECT для таблиц, из которых производится выборка данных. В заблокированных таблицах запрещается выполнение команд ALTER TABLE, DROP TABLE и VACUUM. В этом режиме для заблокированных таблиц также запрещаются параллельные блокировки уровня ACCESS EXCLUSIVE MODE.
  • ROW SHARE MODE. Устанавливается автоматически командами SELECT, содержащими секцию FOR UPDATE или FOR SHARE. В заблокированных таблицах запрещается выполнение команд ALTER TABLE, DROP TABLE и VACUUM. В этом режиме для заблокированных таблиц также запрещаются параллельные блокировки уровней EXCLUSIVE MODE и ACCESS EXCLUSIVE MODE.
  • ROW EXCLUSIVE MODE. Устанавливается автоматически командами UPDATE, INSERT и DELETE. В заблокированных таблицах запрещается выполнение команд ALTER TABLE, DROP TABLE и CREATE INDEX. В этом режиме для заблокированных таблиц также запрещаются параллельные блокировки уровней SHARE MODE, SHARE ROW EXCLUSIVE MODE, EXCLUSIVE MODE и ACCESS EXCLUSIVE MODE.
  • SHARE UPDATE EXCLUSIVE MODE. Устанавливается автоматически командами VACUUM (без FULL), ANALYZE и CREATE INDEX CONCURRENTLY.
  • SHARE MODE. Устанавливается автоматически командами CREATE INDEX (без CONCURRENTLY). В заблокированных таблицах запрещается выполнение команд INSERT, UPDATE, DELETE, ALTER TABLE, DROP TABLE и VACUUM. В этом режиме для заблокированных таблиц также запрещаются параллельные блокировки уровней ROW EXCLUSIVE MODE, SHARE ROW EXCLUSIVE MODE, EXCLUSIVE MODE и ACCESS EXCLUSIVE MODE.
  • SHARE ROW EXCLUSIVE MOOE. Специальный режим блокировки, практически идентичный режиму EXCLUSIVE MODE, но допускающий установку параллельных блокировок уровня ROW SHARE MODE.
  • EXCLUSIVE MODE. Запрещает выполнение команд INSERT, UPDATE, DELETE, CREATE INDEX, ALTER TABLE, DROP TABLE и VACUUM, а также команд SELECT с секцией FOR UPDATE. В этом режиме для заблокированных таблиц также запрещаются параллельные блокировки уровней ROW SHARE MODE, ROW EXCLUSIVE MODE, SHARE MODE, SHARE ROW EXCLUSIVE MODE и ACCESS EXCLUSIVE MODE.
  • ACCESS EXCLUSIVE MODE. Устанавливается автоматически командами ALTER TABLE, DROP TABLE и VACUUM. В этом режиме для заблокированных таблиц запрещаются любые команды или параллельные блокировки любого уровня.

Какие типы блокировок могут существовать в системе?

Типы блокировок

В Vi&ual FoxPro вы можете использовать два типа блокировок: блокировку таблицы и записи. Блокировка таблицы запрещает доступ другим пользователям ко всей таблице, пока вы редактируете одну или несколько записей. Применение блокировки записи не допускает изменения записи кем-либо, кроме пользователя, установившего блокировку.

По возможности следует использовать блокировку записи, потому что она запрещает изменение только одной записи, а не всей таблицы. Например, пока вы редактируете запись о покупателе Иванове, кто-нибудь может работать с записью о покупателе Петрове. И вы оба можете совершать изменения, не мешая друг другу и не беспокоясь за действия другого.

Автоматическая блокировка

В Visual FoxPro может осуществляться автоматическая или ручная блокировка данных. При использовании определенных команд FoxPro попытается автоматически заблокировать записи или всю таблицу (табл. 20.1).

Таблица 20.1. Команды, автоматически блокирующие таблицу или записи

Команда Что блокируется
ALTER TABLE Вся таблица
APPEND Вся таблица
APPEND BLANK Заголовок таблицы
APPEND FROM Вся таблица
APPEND FROM ARRAY Заголовок таблицы
APPEND MEMO Текущая запись
BLANK Текущая запись
BROWSE Текущая запись и все записи из одноименных полей в связанных таблицах
CHANGE Текущая запись и все записи из одноименных полей в связанных таблицах
DELETE Текущая запись
DELETE NEXT 1 Текущая запись
DELETE <n> Если л больше 1, автоматически блокируется вся таблица
DELETE RECORD <n> Автоматически блокирует п записей
DELETE SQL Текущая запись
EDIT Текущая запись и все записи из одноименных полей в связанных таблицах
GATHER Текущая запись
INSERT Вся таблица
INSERT SQL Заголовок таблицы
MODIFY MEMO Когда начинается редактирование записи, автоматически блокирует ее
READ Текущая запись
RECALL Текущая запись
RECALL NEXT 1 Автоматически блокирует указанную запись
RECALL RECORD <n> Блокирует п записей
RECALL <n> Если п больше 1, автоматически блокируется вся таблица
REPLACE Текущая запись
REPLACE NEXT 1 Автоматически блокирует указанную запись
REPLACE RECORD <n> Блокирует п записей
SHOW GETS Текущая запись
TABLEUPDATEO Вся таблица
UPDATE Вся таблица
UPDATE SQL Вся таблица




Поделиться с друзьями:


Дата добавления: 2015-11-23; Мы поможем в написании ваших работ!; просмотров: 421 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Так просто быть добрым - нужно только представить себя на месте другого человека прежде, чем начать его судить. © Марлен Дитрих
==> читать все изречения...

2439 - | 2195 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.