25.4. Удаление аналитической таблицы (metastore.remove_table) #
Требуемые права: только администратор Postgres Pro AXE. За подробной информацией о хранимых процедурах и правах обратитесь к Разделу 22.1.
Выполните следующую команду:
SELECT metastore.remove_table('имя_схемы.имя_таблицы', --[force], [cascade]);Где:
имя_схемы.имя_таблицы: имя аналитической схемы, содержащей удаляемую аналитическую таблицу, а также имя самой таблицы.Имя схемы можно пропустить и просто указать имя таблицы (без точки). В этом случае используется аналитическая схема по умолчанию
main.force: указывает, следует ли удалить представление Postgres Pro, созданное из аналитической таблицы с помощью хранимой процедурыmetastore.create_view.Возможные значения:
truefalse
Значение по умолчанию: true.
Необязательный параметр.
cascade: указывает, следует ли удалить все представления, основанные на представлении Postgres Pro, которое было создано из аналитической таблицы с помощью хранимой процедурыmetastore.create_view.Возможные значения:
truefalse
Значение по умолчанию:
false.Необязательный параметр.
Postgres Pro AXE выполняет следующие действия:
Проверяет параметры ввода и права пользователя.
Создаёт новую запись в таблице метаданных
pga_snapshotи устанавливает значениеend_snapshotдля аналитической таблицы в таблице метаданныхpga_table.Устанавливает значение
end_snapshotдля записей, связанных с аналитической таблицей, в других таблицах метаданных.Выполняет действия в зависимости от значений
forceиcascade(обратитесь к таблице ниже).forcecascadeДействие falsefalseНе выполняется никаких действий, и представления не изменяются. falsetrueУдаляет представление и все основанные на нём представления. Применяется флаг cascade,force— игнорируется.truefalseУдаляет только представление. При существовании представлений, основанных на этом представлении, выдаёт SQL-ошибку. truetrueУдаляет представление и все основанные на нём представления. Применяется флаг 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