YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
SQL 参考
- ABORT
- ALTER_DATABASE
- ALTER_EXTENSION
- ALTER_EXTERNAL_TABLE
- ALTER_FOREIGN_DATA_WRAPPER
- ALTER_FOREIGN_TABLE
- ALTER_FUNCTION
- ALTER_INDEX
- ALTER_RESOURCE_GROUP
- ALTER_RESOURCE_QUEUE
- ALTER_ROLE
- ALTER_RULE
- ALTER_SCHEMA
- ALTER_SEQUENCE
- ALTER_SERVER
- ALTER_TABLE
- ALTER_TABLESPACE
- ALTER_TYPE
- ALTER_USER_MAPPING
- ALTER_VIEW
- ANALYZE
- BEGIN
- CHECKPOINT
- COMMIT
- COPY
- CREATE_DATABASE
- CREATE_EXTENSION
- CREATE_EXTERNAL_TABLE
- CREATE_FOREIGN_DATA_WRAPPER
- CREATE_FOREIGN_TABLE
- CREATE_FUNCTION
- CREATE_INDEX
- CREATE_RESOURCE_GROUP
- CREATE_RESOURCE_QUEUE
- CREATE_ROLE
- CREATE_RULE
- CREATE_SCHEMA
- CREATE_SEGMENT_SET
- CREATE_SEQUENCE
- CREATE_SERVER
- CREATE_TABLE
- CREATE_TABLE_AS
- CREATE_TABLESPACE
- CREATE_TYPE
- CREATE_USER_MAPPING
- CREATE_VIEW
- DELETE
- DROP_DATABASE
- DROP_EXTENSION
- DROP_EXTERNAL_TABLE
- DROP_FOREIGN_DATA_WRAPPER
- DROP_FOREIGN_TABLE
- DROP_FUNCTION
- DROP_INDEX
- DROP_RESOURCE_GROUP
- DROP_RESOURCE_QUEUE
- DROP_ROLE
- DROP_RULE
- DROP_SCHEMA
- DROP_SEGMENT_SET
- DROP_SEQUENCE
- DROP_SERVER
- DROP_TABLE
- DROP_TABLESPACE
- DROP_TYPE
- DROP_USER_MAPPING
- DROP_VIEW
- END
- EXPLAIN
- GRANT
- INSERT
- LOAD
- LOCK
- REINDEX
- RELEASE_SAVEPOINT
- RESET
- REVOKE
- ROLLBACK_TO_SAVEPOINT
- ROLLBACK
- SAVEPOINT
- SELECT INTO
- SET ROLE
- SET TRANSACTION
- SET
- SHOW
- START TRANSACTION
- TRUNCATE
- UPDATE
- VACUUM
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 — 从一个外部表定义中删除一列。如果你删掉只读外部表的 列,这只会在 YMatrix 的表定义中修改。CASCADE 关键字是用来当一些其他表依 赖于这些列时使用,比如说一个视图依赖于这列。
- ALTER COLUMN TYPE — 改变一个表列的数据类型。
- OWNER — 将一个外部表的所有者改为指定用户。
使用ALTER TABLE可以在一个外部表中实现这些操作。
- 设置(修改)表模式
- 重命名表
- 重命名表中的列
你必须时外部表的所有者才能使用 ALTER EXTERNAL TABLE 或者 ALTER TABLE。要改变一个外部表的模式,你还必须在新模式上 有 CREATE 的权限。要更改所有者,用户还必须是新拥有角色的 直接或间接成员,该角色必须对外部表的模式具有 CREATE 特权。超级用户自动拥有这些权限。
用 ALTER EXTERNAL TABLE 或者 ALTER TABLE 修改外部表的定义不会影响外部的数据。
ALTER EXTERNAL TABLE 和 ALTER 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 是 YMatrix SQL的扩展。标准 SQL 语句或者 PostgreSQL 中没有 ALTER EXTERNAL TABLE 语句。