ALTER EXTERNAL TABLE
ALTER EXTERNAL TABLE
更改外部表的定义。
概要
ALTER EXTERNAL TABLE name RENAME [COLUMN] column TO new_column ALTER EXTERNAL TABLE name RENAME TO new_name ALTER EXTERNAL TABLE name SET SCHEMA new_schema ALTER EXTERNAL TABLE name action [, ... ]
其中action是下列之一:
ADD [COLUMN] column_name type DROP [COLUMN] column ALTER [COLUMN] column TYPE type [USING expression] OWNER TO new_owner
描述
ALTER EXTERNAL TABLE 更改一个现有外部表的定义。有几种子形式:
- ADD COLUMN —向外部表定义添加一个新列。
- DROP COLUMN — 从外部表定义中删除一列。请注意,如果用户删除可读的外部表列,它只会更改Greenplum数据库中的表定义。外部数据文件不会更改。
- ALTER COLUMN TYPE — 更改表的列的数据类型。 可选的 USING 可选的USING子句指定如何从旧数据计算新的列值。 如果省略,则默认转换与从旧数据类型转换为新的转换相同。USING 必须被提供,如果没有从旧类型到新类型的隐式或赋值转换,
- OWNER — 将外部表的所有者更改为指定的用户。
- RENAME — 更改外部表的名称或表中单个列的名称。对外部数据没有影响。
- SET SCHEMA —将外部表移动到另一个模式。
用户必须拥有外部表才能使用ALTER EXTERNAL TABLE. 要更改外部表的模式,用户还必须对新模式具有 CREATE 权限。要更改所有者,用户还必须是新拥有角色的直接或间接成员,该角色必须对外部表的模式具有CREATE 特权。超级用户自动拥有这些权限。
在此版本中, ALTER EXTERNAL TABLE 不能修改外部表类型,数据格式或外部数据的位置。 要修改此信息,用户必须删除并重新创建外部表定义。
参数
- name
- 要修改的现有外部表定义的名称(可以是方案限定)。
- column
- 新列或现有列的名称。
- new_column
- 现有列的新名称。
- new_name
- 外部表的新名称。
- type
- 新列的数据类型或现有列的新数据类型。
- new_owner
- 外部表的新所有者的角色名称。
- new_schema
- 该表要被移动到其中的模式的名称。
示例
向外部表定义添加新列:
ALTER EXTERNAL TABLE ext_expenses ADD COLUMN manager text;
更改外部表的名称:
ALTER EXTERNAL TABLE ext_data RENAME TO ext_sales_data;
更改外部表的所有者:
ALTER EXTERNAL TABLE ext_data OWNER TO jojo;
更改外部表的模式:
ALTER EXTERNAL TABLE ext_leads SET SCHEMA marketing;
兼容性
ALTER EXTERNAL TABLE 是 Greenplum数据库的一个扩展。 没有 ALTER EXTERNAL TABLE 语句在SQL标准或常规PostgreSQL