ALTER EXTERNAL TABLE

Changes the definition of an external table.

Synopsis

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 [, ... ]

where action is one of:

  ADD [COLUMN] column_name type
  DROP [COLUMN] column
  ALTER [COLUMN] column
  TYPE type [USING expression]
  OWNER TO new_owner

Description

ALTER EXTERNAL TABLE changes the definition of an existing external table. There are several subforms:

  • ADD COLUMN — Adds a new column to the external table definition.
  • DROP COLUMN — Drops a column from the external table definition. Note that if you drop readable external table columns, it only changes the table definition in Greenplum Database. External data files are not changed.
  • ALTER COLUMN TYPE — Changes the data type of a column of a table. The optional USING clause specifies how to compute the new column value from the old. If omitted, the default conversion is the same as an assignment cast from old data type to new. A USING clause must be provided if there is no implicit or assignment cast from the old to new type.
  • OWNER — Changes the owner of the external table to the specified user.
  • RENAME — Changes the name of an external table or the name of an individual column in the table. There is no effect on the external data.
  • SET SCHEMA — Moves the external table into another schema.

You must own the external table to use ALTER EXTERNAL TABLE. To change the schema of an external table, you must also have CREATE privilege on the new schema. To alter the owner, you must also be a direct or indirect member of the new owning role, and that role must have CREATE privilege on the external table's schema. A superuser has these privileges automatically.

In this release, ALTER EXTERNAL TABLE cannot modify the external table type, the data format, or the location of the external data. To modify this information, you must drop and recreate the external table definition.

Parameters

name
The name (possibly schema-qualified) of an existing external table definition to alter.
column
Name of a new or existing column.
new_column
New name for an existing column.
new_name
New name for the external table.
type
Data type of the new column, or new data type for an existing column.
new_owner
The role name of the new owner of the external table.
new_schema
The name of the schema to which the external table will be moved.

Examples

Add a new column to an external table definition:

ALTER EXTERNAL TABLE ext_expenses ADD COLUMN manager text;

Change the name of an external table:

ALTER EXTERNAL TABLE ext_data RENAME TO ext_sales_data;

Change the owner of an external table:

ALTER EXTERNAL TABLE ext_data OWNER TO jojo;

Change the schema of an external table:

ALTER EXTERNAL TABLE ext_leads SET SCHEMA marketing;

Compatibility

ALTER EXTERNAL TABLE is a Greenplum Database extension. There is no ALTER EXTERNAL TABLE statement in the SQL standard or regular PostgreSQL.