25.4. Удаление аналитической таблицы (metastore.remove_table) #

Требуемые права: только администратор Postgres Pro AXE. За подробной информацией о хранимых процедурах и правах обратитесь к Разделу 22.1.

Выполните следующую команду:

  SELECT metastore.remove_table('имя_схемы.имя_таблицы', --[force], [cascade]);

Где:

  • имя_схемы.имя_таблицы: имя аналитической схемы, содержащей удаляемую аналитическую таблицу, а также имя самой таблицы.

    Имя схемы можно пропустить и просто указать имя таблицы (без точки). В этом случае используется аналитическая схема по умолчанию main.

  • force: указывает, следует ли удалить представление Postgres Pro, созданное из аналитической таблицы с помощью хранимой процедуры metastore.create_view.

    Возможные значения:

    • true

    • false

    Значение по умолчанию: true.

    Необязательный параметр.

  • cascade: указывает, следует ли удалить все представления, основанные на представлении Postgres Pro, которое было создано из аналитической таблицы с помощью хранимой процедуры metastore.create_view.

    Возможные значения:

    • true

    • false

    Значение по умолчанию: false.

    Необязательный параметр.

Postgres Pro AXE выполняет следующие действия:

  1. Проверяет параметры ввода и права пользователя.

  2. Создаёт новую запись в таблице метаданных pga_snapshot и устанавливает значение end_snapshot для аналитической таблицы в таблице метаданных pga_table.

  3. Устанавливает значение end_snapshot для записей, связанных с аналитической таблицей, в других таблицах метаданных.

  4. Выполняет действия в зависимости от значений force и cascade (обратитесь к таблице ниже).

    forcecascadeДействие

    false

    false

    Не выполняется никаких действий, и представления не изменяются.

    false

    true

    Удаляет представление и все основанные на нём представления. Применяется флаг cascade, force — игнорируется.

    true

    false

    Удаляет только представление. При существовании представлений, основанных на этом представлении, выдаёт SQL-ошибку.

    true

    true

    Удаляет представление и все основанные на нём представления. Применяется флаг cascade, force — игнорируется.

Пример 25.6. Выполнение хранимой процедуры metastore.remove_table

  SELECT metastore.remove_table('table_example'); --force=true, cascade=false
  SELECT metastore.remove_table('table_example', false); --force=false, cascade=false
  SELECT metastore.remove_table('table_name', false, true); --force=false, cascade=true