Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Оператор освобождения строк unlock

Оператор unlock освобождает строки, удовлетворяющие логическому условию, в указанной таблице. Если логическое условие не задано, то освобождаются все строки. Освобождаемые строки должны быть ранее захвачены оператором lock. После освобождения строки таблицы становятся доступными другим пользователям для изменения и удаления.

Оператор unlock делает поиск записей (аналогично оператору select) и затем производит освобождение записей. Если поиск делается не под транзакцией, то при поиске будет сделан снимок таблицы, если снимка не было.

Формат:

unlock Имя_Таблицы [ where Предикат ];

Аргументы:

Аргумент

Значение

Имя_таблицы

Имя таблицы, в которой разблокируются записи.

Предикат

Условие, которое определяет, какие записи необходимо разблокировать. Если условие опущено, то разблокируются все записи.

Примеры работы с блокировками

Пример. Заблокировать записи таблицы BOOK, в которых содержится информация о книгах Гоголя.

lock   BOOK where   ID_AUTHOR in     ( select ID from AUTHOR where LNAME = 'Гоголь' );

Пример. Снять блокировку со всех записей таблицы BOOK.

unlock BOOK;

3.4 Операторы работы с таблицами и индексами

Приводится описание SQL операторов работы с таблицами и индексами:

  • Оператор create table – создание таблицы;

  • Оператор drop table – удалить таблицу;

  • Оператор open table – открыть таблицу;

  • Оператор close table – закрыть таблицу;

  • Оператор pack table – перенос переменной части таблицы в постоянную;

  • Оператор drop diff – удаление переменной части таблицы;

  • Оператор rename table – переименовать таблицу;

  • Оператор create index – создание индекса для таблицы;

  • Оператор drop index – удаление индекса.

3.4.1 Оператор создания таблицы create table Оператор create table

Для создания таблицы используется оператор create table.

Формат:

create [ { global | local } temporary ] table Имя_таблицы        ( Определение_столбца, ... );

Определение_столбца ::=   Имя_столбца Тип_данных [ (Размер) ]   [( Ограничения_столбца ),( Атрибуты_столбца )]

Аргументы:

Аргумент

Значение

Имя_таблицы

Обязательный параметр, который задает имя таблицы. Имя таблицы должно содержать латинские буквы и цифры, должно начинаться с буквы. Имя постоянной таблицы должно быть не длиннее 8 символов, имя временной таблицы может быть длиной до 31 символа. Имя таблицы не должно совпадать с зарезервированными словами. Имя постоянной таблицы должно быть уникальным для всех пользователей, имя глобальной временной таблицы должно быть уникальным только в рамках текущего сеанса пользователя, имя локальной временной таблицы – в рамках текущего курсора пользователя.

Имя_столбца

Обязательный параметр, который задает имя столбца таблицы. Имя столбца должно содержать латинские буквы и цифры, должно начинаться с буквы и должно быть не длиннее 10 символов. Имена столбцов должны быть уникальными в пределах таблицы, не должны быть зарезервированными словами и не должны совпадать с именем recno.

Тип_данных

Обязательный параметр, который задает форму хранения информации в базе данных. Типы данных рассматриваются в разделе, посвященном процедурному расширению

Ограничения_столбца

Необязательный параметр, который задает ограничения на значения поля в таблице.

Атрибуты_столбца

Необязательный параметр, который задает некоторые дополнительные характеристики столбца, отличные от характеристик по умолчанию.

global temporary

Задает создание глобальной временной таблицы.

local temporary

Задает создание локальной временной таблицы.

При попытке создать уже созданную таблицу возникнет ошибка: «[-9] Таблица с таким именем уже существует : TEMP». Для проверки существования таблицы в БД можно использовать функцию table_exists.

Пример:

if (table_exists('TEMP') == 0) {   create global temporary table TEMP   (     AID long unique autoinc,     UID long unique,     SID dword surrogate   ); }