Skip to main content Link Menu Expand (external link) Document Search Copy Copied

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

CREATE VIEW

Содержание раздела
  1. Синтаксис
    1. Ключевое слово AS SELECT
  2. Ограничения
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения SELECT-подзапроса
    4. Другие ограничения
  3. Примеры
    1. Представление на основе логической таблицы
    2. Представление на основе standalone-таблицы
    3. Представление на основе соединения логической таблицы и standalone-таблицы

Поддерживается в версиях:  6.1 / 6.0 / 5.8 / 5.7 / 5.6.1 / 5.5 / 5.4 / 5.3 / 5.2 / 5.1 / 5.0.

Запрос позволяет создать или заменить логическое представление в логической базе данных.

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

Запрос попадает в очередь операций и обрабатывается в порядке его поступления в очередь. В ответе возвращается:

  • пустой объект ResultSet при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Ошибка выполнения корректного запроса блокирует последующие запросы в этой логической базе данных. В случае блокировки устраните причины сбоя и повторите сбойную операцию. Если повторение операции невозможно, удалите сбойную операцию запросом ERASE_CHANGE_OPERATION и вручную устраните несоответствия на физическом уровне (если такие есть).

Каждое создание представления записывается в журнал. Журнал можно посмотреть с помощью запроса GET_CHANGES.

Синтаксис

Создание логического представления:

CREATE VIEW [db_name.]view_name AS SELECT query

Создание логического представления с заменой существующего представления, если такое будет найдено:

CREATE OR REPLACE VIEW [db_name.]view_name AS SELECT query

Параметры:

db_name

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

view_name

Имя создаваемого или заменяемого логического представления. В запросе на создание представления имя должно быть уникально среди логических сущностей логической БД.

query

SELECT-подзапрос, на основе которого строится логическое представление.

Ключевое слово AS SELECT

Ключевое слово AS SELECT задает SELECT-подзапрос для отображения в представлении.

Ограничения

Ограничения выполнения

Ограничения имен

  • Имена представления, столбцов и псевдонимов должны соответствовать требованиям, описанным в разделе Соглашения об именах.

Ограничения SELECT-подзапроса

Другие ограничения

  • Информационная схема обновляется асинхронно, поэтому созданное представление может не сразу появиться в информационной схеме.

Примеры

Представление на основе логической таблицы

CREATE VIEW marketing.stores_by_sold_products AS
  SELECT store_id, SUM(product_units) AS product_amount
  FROM marketing.sales
  GROUP BY store_id
  ORDER BY product_amount DESC
  LIMIT 20

Представление на основе standalone-таблицы

-- представление на основе standalone-таблицы, на которую указывает внешняя readable-таблица payments_ext_read_adg
CREATE VIEW marketing.payments_by_agreement AS
  SELECT p.agreement_id, p.code, SUM(p.amount) AS amount, p.currency_code 
  FROM marketing.payments_ext_read_adg AS p 
  GROUP BY p.agreement_id, p.code, p.currency_code

Представление на основе соединения логической таблицы и standalone-таблицы

-- представление на основе логической таблицы clients и standalone-таблицы, на которую указывает 
--   внешняя readable-таблица agreements_ext_read_adp
CREATE VIEW marketing.agreements_with_client_info AS
  SELECT a.id, a.client_id, c.last_name, c.first_name, c.patronymic_name 
  FROM marketing.agreements_ext_read_adp AS a
  LEFT JOIN marketing.clients AS c
    ON a.client_id = c.id