ALTER EXTERNAL TABLE

更改一个外部表的定义。

概要

ALTER EXTERNAL TABLE name action [, ... ]

where action is one of:

  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 — 从一个外部表定义中删除一列。如果你删掉只读外部表的 列,这只会在Greenplum的表定义中修改。CASCADE 关键字是用来当一些其他表依 赖于这些列时使用,比如说一个视图依赖于这列。
  • ALTER COLUMN TYPE — 改变一个表列的数据类型。
  • OWNER — 将一个外部表的所有者改为指定用户。

[ALTER TABLE](ALTER_TABLE.html#topic1) 来在一个外部表中实现这些操作。* 设置(修改)表模式

  • 重命名表
  • 重命名表中的列

你必须时外部表的所有者才能使用ALTER EXTERNAL TABLE或者 ALTER TABLE。要改变一个外部表的模式,你还必须在新模式上 有CREATE的权限。要更改所有者,用户还必须是新拥有角色的 直接或间接成员,该角色必须对外部表的模式具有 CREATE特权。超级用户自动拥有这些权限。

ALTER EXTERNAL TABLE或者 ALTER TABLE 修改外部表的定义不会影响外部的数据。

ALTER EXTERNAL TABLEALTER TABLE命令 不会修改外部表的类型(读、写、网页),表的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是Greenplum数据的扩展。标准SQL语句或者PostgreSQL中没有ALTER EXTERNAL TABLE语句。

另见

[CREATE EXTERNAL TABLE](CREATE_EXTERNAL_TABLE.html#topic1), [DROP EXTERNAL TABLE](DROP_EXTERNAL_TABLE.html#topic1), [ALTER TABLE](ALTER_TABLE.html#topic1)

Parent topic: SQL Command Reference

当前内容版权归GreenPlum和翻译组所有,若有侵权请联系删除下架 修订时间: 2024-09-15 21:48:10

results matching ""

    No results matching ""