3.4. Столбцы аналитических таблиц #

За подробной информацией об аналитических таблицах обратитесь к Разделу 3.3.

3.4.1. Создание столбца #

Выполните следующий запрос:

  SELECT metastore.add_column('имя_схемы.имя_таблицы' или 'имя_таблицы', 'имя_столбца', 'тип_данных');

Где:

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

    Необязательный параметр. Если он не задан, используется текущая схема.

  • имя таблицы: имя аналитической таблицы, в которой будет создан столбец.

  • имя_столбца: уникальное имя столбца.

  • тип_данных: тип данных столбца.

    За подробной информацией о поддерживаемых типах данных обратитесь к Приложению E.

Пример 3.23.

  SELECT metastore.add_column('testtable', 'third_col', 'uint8');

После выполнения этого запроса pgpro_metastore выполняет следующие действия:

  1. Проверяет права пользователей.

  2. Создаёт новый столбец в таблице метаданных pga_column.

  3. Обновляет значение view_sql для аналитической таблицы.

3.4.2. Переименование столбца #

Выполните следующий запрос:

  SELECT metastore.rename_column('имя_схемы.имя_таблицы' или 'имя_таблицы', 'текущее_имя_столбца', 'новое_имя_столбца');

Где:

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

    Необязательный параметр. Если он не задан, используется текущая схема.

  • имя_таблицы: имя аналитической таблицы, в которой создан столбец.

  • текущее_имя_столбца: текущее имя столбца.

  • новое_имя_столбца: новое уникальное имя столбца.

Пример 3.24.

  SELECT metastore.rename_column('testtable', 'first_col', 'eleventh_col');

После выполнения этого запроса pgpro_metastore выполняет следующие действия:

  1. Проверяет права пользователей.

  2. Обновляет значение column_name для столбца в таблице метаданных pga_column.

  3. Обновляет значение view_sql для аналитической таблицы.

3.4.3. Изменение типа данных столбца #

Выполните следующий запрос:

  SELECT metastore.change_column_type('имя_схемы.имя_таблицы' или 'имя_таблицы', 'имя_столбца', 'новый_тип_данных');

Где:

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

    Необязательный параметр. Если он не задан, используется текущая схема.

  • имя_таблицы: имя аналитической таблицы, в которой создан столбец.

  • имя_столбца: имя столбца, тип данных которого будет изменён.

  • тип_данных: новый тип данных столбца.

    За подробной информацией о поддерживаемых типах данных обратитесь к Приложению E.

Пример 3.25.

  SELECT metastore.change_column_type('testtable', 'third_col', 'uint8');

После выполнения этого запроса pgpro_metastore выполняет следующие действия:

  1. Проверяет права пользователей.

  2. Проверяет, что новый тип данных столбца не совпадает с предыдущим.

  3. Проверяет, что аналитическая таблица пустая или что новый тип данных совместим с предыдущим:

    • int8 можно изменить на int16, int32 или int64;

    • int16 можно изменить на int32 или int64;

    • int32 можно изменить на int64;

    • uint8 можно изменить на uint16, uint32 или uint64;

    • uint16 можно изменить на uint32 или uint64;

    • uint32 можно изменить на uint64;

    • float32 можно изменить на float64.

  4. Обновляет значение column_type для столбца в таблице метаданных pga_column.

  5. Обновляет значение view_sql для аналитической таблицы.

3.4.4. Удаление столбца #

Выполните следующий запрос:

  SELECT metastore.delete_column('имя_схемы.имя_таблицы' или 'имя_таблицы', 'имя_столбца');

Где:

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

    Необязательный параметр. Если он не задан, используется текущая схема.

  • имя_таблицы: имя аналитической таблицы, в которой создан столбец.

  • имя_столбца: имя столбца, который будет удалён.

Пример 3.26.

  SELECT metastore.delete_column('my_schema.testtable', 'second_col');

После выполнения этого запроса pgpro_metastore выполняет следующие действия:

  1. Проверяет права пользователей.

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

  3. Обновляет значение view_sql для аналитической таблицы.