Виды в Informix

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

Любой пользователь, имеющий необходимые разрешения, может создать представления с помощью SQL или команды sdetable. Кроме того, виды можно использовать для редактирования данных, если соблюдаются определенные требования. Сведения о правах доступа, необходимых для создания или изменения видов, можно получить в Информационном центре IBM Informix Dynamic Server для вашей версии.

В базах данных Informix определения видов сохраняются в таблице каталога sysviews.

Таблица системного каталога sysviews хранит информацию о виде

При создании видов в базе данных Informix с использованием SQL или команды sdetable, виды определяются в таблице системного каталога sysviews. Поэтому можно выполнить запрос к таблице системного каталога sysviews для поиска определения каждого вида в базе данных.

Таблица системного каталога sysviews содержат следующие столбцы:

Имя (Name)

Тип

Описание

tabid

Целое

ID вида

seqno

Smallint

Номер строки выражения SELECT, которое используется для создания вида

viewtext

char(64)

Выражение, используемое для создания вида

Таблица каталога видов Informix

Можно сначала выполнить запрос к таблице системного каталога systables для поиска идентификатора tabid нужного вида. Таблица системного каталога systables хранит запись для каждого объекта базы данных, однако можно выполнить запрос к ней таким образом, чтобы получить только виды, как показано в приведенном ниже примере:

SELECT * 
FROM informix.systables 
WHERE tabtype = 'V';

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

SELECT * 
FROM informix.sysviews 
WHERE tabid = <view_id>;
9/11/2013