ALTER EXTERNAL TABLE
Изменяет определение внешней таблицы.
Синтаксис
ALTER EXTERNAL TABLE <name> <action> [, ... ]
где action может быть следующим:
ADD [COLUMN] <new_column> <type>
DROP [COLUMN] <column> [RESTRICT|CASCADE]
ALTER [COLUMN] <column> TYPE <type>
OWNER TO <new_owner>
Описание
ALTER EXTERNAL TABLE изменяет определение существующей внешней таблицы.
Поддерживаются следующие действия ALTER EXTERNAL TABLE:
-
ADD COLUMN— добавляет новый столбец в определение внешней таблицы. -
DROP COLUMN— удаляет столбец из определения внешней таблицы. Если вы удаляете столбцы читающей внешней таблицы, это изменяет только определение таблицы в Greengage DB. Ключевое словоCASCADEтребуется, если что-то вне таблицы зависит от столбца, например, представление, ссылающееся на столбец. -
ALTER COLUMN TYPE— изменяет тип данных столбца таблицы. -
OWNER— меняет владельца внешней таблицы на указанного пользователя.
Используйте команду ALTER TABLE, чтобы выполнить следующие действия для внешней таблицы:
-
Задать или изменить схему таблицы.
-
Переименовать таблицу.
-
Переименовать столбец таблицы.
-
Задать или изменить политику распределения (только для записываемой внешней таблицы).
Чтобы использовать ALTER EXTERNAL TABLE или ALTER TABLE, необходимо быть владельцем внешней таблицы.
Чтобы изменить схему внешней таблицы, также необходимо иметь привилегию CREATE в новой схеме.
Чтобы изменить владельца, вы также должны быть прямым или косвенным участником новой роли-владельца, и эта роль должна иметь привилегию CREATE в схеме внешней таблицы.
Суперпользователь имеет эти привилегии автоматически.
Изменения, вносимые в определение внешней таблицы с помощью ALTER EXTERNAL TABLE или ALTER TABLE, не влияют на внешние данные.
Команды ALTER EXTERNAL TABLE и ALTER TABLE не могут изменить тип внешней таблицы (read, write, веб), сведения о формате FORMAT или расположение внешних данных.
Чтобы изменить эту информацию, необходимо удалить и заново создать определение внешней таблицы.
Параметры
| Параметр | Описание |
|---|---|
name |
Имя существующей внешней таблицы |
column |
Имя существующего столбца |
new_column |
Новое имя столбца |
type |
Тип данных нового или изменяемого столбца |
new_owner |
Имя пользователя нового владельца внешней таблицы |
CASCADE |
Автоматически удалять объекты, зависящие от удаляемого столбца, например, представления, ссылающиеся на этот столбец |
RESTRICT |
Отказать в удалении столбца или ограничения, если существуют зависимые объекты. Это поведение по умолчанию |
Примеры
Добавить новый столбец в определение внешней таблицы:
ALTER EXTERNAL TABLE ext_expenses ADD COLUMN manager text;
Сменить владельца внешней таблицы:
ALTER EXTERNAL TABLE ext_data OWNER TO jojo;
Изменить тип данных столбца внешней таблицы:
ALTER EXTERNAL TABLE ext_leads ALTER COLUMN acct_code TYPE integer;
Совместимость
ALTER EXTERNAL TABLE является расширением Greengage DB.
В стандарте SQL или обычном PostgreSQL нет команды ALTER EXTERNAL TABLE.