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

Атрибуты и ограничения столбцов

Ограничения столбцов определяют те условия, которым должны удовлетворять значения полей в таблице. Допустимы ограничение уникальности значений полей и ограничение на допустимости null-значений.

Формат:

unique [autoinc] [ null | not null ]

Аргументы:

Аргумент

Значение

unique

Поля, описанные с таким ограничением, будут содержать только уникальные значения. При попытке вставить данные, совпадающие по значению с уже присутствующими, при одиночной операции будет возникать ошибка («Найден дубликат уникального ключа»). Ограничение unique не совместимо с атрибутами столбца nonkey, key, surrogate.

autoinc

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

null

В поле допустимы null-значения.

not null

В поле не допустимы null-значения. При добавлении записей с null-значением будет возникать ошибка «Запрещенное значение поля». Если для поля не указано ограничение null, то в поле null-значения не допустимы

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

Формат:

[ nonkey | key | surrogate ]

Аргументы:

Аргумент

Значение

nonkey

Поле не ключевое, т. е. индексирование значений этого поля не нужно. Атрибут nonkey не совместим с ограничением unique. Поле, которое не имеет атрибута surrogate или key и не имеет ограничения unique, считается не ключевым.

key

Поле ключевое, т. е. необходимо индексировать значения этого поля. Атрибут key не совместим с ограничением unique.

surrogate

Поле суррогатное. Значения этого поля автоматически устанавливается СУБД. Изменять значение этого поля нельзя. Атрибут surrogate не совместим с ограничением unique. Суррогатное поле должно иметь тип dword.

При попытке вставить дублирующееся значение в поле, созданное с ограничением unique, появится ошибка «Unique key doublet value found». Попытки присвоить значение суррогатному и автоинкрементному полю будут проигнорированы, вместо этого после вставки поля будут содержать соответствующие значения сгенерированные СУБД.

Временные таблицы

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

Характеристики таблиц:

Тип

Доступ к данным

Постоянная

Универсальный

Глобальная временная

Сеанс

Локальная временная

Курсор

Глобальные временные таблицы явно удаляются оператором drop table и неявно удаляются после завершения сеанса, в котором они были созданы. Глобальные временные таблицы в разных сеансах могут иметь одинаковые имена.

Локальные временные таблицы явно удаляются оператором drop table и неявно удаляются после уничтожения курсора, в котором они были созданы. Локальные временные таблицы в разных курсорах (в том числе и в одном сеансе) могут иметь одинаковые имена.

Пример. Создать глобальную временную таблицу, содержащую автоинкрементное, уникальное и суррогатное поля.

create global temporary table TEMP (   AID long unique autoinc,   UID long unique,   SID dword surrogate );