ok
Direktori : /opt/alt/postgresql11/usr/share/man/man7/ |
Current File : //opt/alt/postgresql11/usr/share/man/man7/ALTER_FOREIGN_TABLE.7 |
'\" t .\" Title: ALTER FOREIGN TABLE .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/> .\" Date: 2017-11-06 .\" Manual: PostgreSQL 9.2.24 Documentation .\" Source: PostgreSQL 9.2.24 .\" Language: English .\" .TH "ALTER FOREIGN TABLE" "7" "2017-11-06" "PostgreSQL 9.2.24" "PostgreSQL 9.2.24 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" ALTER_FOREIGN_TABLE \- change the definition of a foreign table .\" ALTER FOREIGN TABLE .SH "SYNOPSIS" .sp .nf ALTER FOREIGN TABLE [ IF EXISTS ] \fIname\fR \fIaction\fR [, \&.\&.\&. ] ALTER FOREIGN TABLE [ IF EXISTS ] \fIname\fR RENAME [ COLUMN ] \fIcolumn_name\fR TO \fInew_column_name\fR ALTER FOREIGN TABLE [ IF EXISTS ] \fIname\fR RENAME TO \fInew_name\fR ALTER FOREIGN TABLE [ IF EXISTS ] \fIname\fR SET SCHEMA \fInew_schema\fR where \fIaction\fR is one of: ADD [ COLUMN ] \fIcolumn_name\fR \fIdata_type\fR [ NULL | NOT NULL ] DROP [ COLUMN ] [ IF EXISTS ] \fIcolumn_name\fR [ RESTRICT | CASCADE ] ALTER [ COLUMN ] \fIcolumn_name\fR [ SET DATA ] TYPE \fIdata_type\fR ALTER [ COLUMN ] \fIcolumn_name\fR { SET | DROP } NOT NULL ALTER [ COLUMN ] \fIcolumn_name\fR SET STATISTICS \fIinteger\fR ALTER [ COLUMN ] \fIcolumn_name\fR SET ( \fIattribute_option\fR = \fIvalue\fR [, \&.\&.\&. ] ) ALTER [ COLUMN ] \fIcolumn_name\fR RESET ( \fIattribute_option\fR [, \&.\&.\&. ] ) ALTER [ COLUMN ] \fIcolumn_name\fR OPTIONS ( [ ADD | SET | DROP ] \fIoption\fR [\*(Aq\fIvalue\fR\*(Aq] [, \&.\&.\&. ]) OWNER TO \fInew_owner\fR OPTIONS ( [ ADD | SET | DROP ] \fIoption\fR [\*(Aq\fIvalue\fR\*(Aq] [, \&.\&.\&. ]) .fi .SH "DESCRIPTION" .PP \fBALTER FOREIGN TABLE\fR changes the definition of an existing foreign table\&. There are several subforms: .PP ADD COLUMN .RS 4 This form adds a new column to the foreign table, using the same syntax as CREATE FOREIGN TABLE (\fBCREATE_FOREIGN_TABLE\fR(7))\&. .RE .PP DROP COLUMN [ IF EXISTS ] .RS 4 This form drops a column from a foreign table\&. You will need to say CASCADE if anything outside the table depends on the column; for example, views\&. If IF EXISTS is specified and the column does not exist, no error is thrown\&. In this case a notice is issued instead\&. .RE .PP IF EXISTS .RS 4 Do not throw an error if the foreign table does not exist\&. A notice is issued in this case\&. .RE .PP SET DATA TYPE .RS 4 This form changes the type of a column of a foreign table\&. .RE .PP SET/DROP NOT NULL .RS 4 Mark a column as allowing, or not allowing, null values\&. .RE .PP SET STATISTICS .RS 4 This form sets the per\-column statistics\-gathering target for subsequent \fBANALYZE\fR(7) operations\&. See the similar form of ALTER TABLE (\fBALTER_TABLE\fR(7)) for more details\&. .RE .PP SET ( \fIattribute_option\fR = \fIvalue\fR [, \&.\&.\&. ] ), RESET ( \fIattribute_option\fR [, \&.\&.\&. ] ) .RS 4 This form sets or resets per\-attribute options\&. See the similar form of ALTER TABLE (\fBALTER_TABLE\fR(7)) for more details\&. .RE .PP OWNER .RS 4 This form changes the owner of the foreign table to the specified user\&. .RE .PP RENAME .RS 4 The RENAME forms change the name of a foreign table or the name of an individual column in a foreign table\&. .RE .PP SET SCHEMA .RS 4 This form moves the foreign table into another schema\&. .RE .PP OPTIONS ( [ ADD | SET | DROP ] \fIoption\fR [\*(Aq\fIvalue\fR\*(Aq] [, \&.\&.\&. ] ) .RS 4 Change options for the foreign table or one of its columns\&. ADD, SET, and DROP specify the action to be performed\&. ADD is assumed if no operation is explicitly specified\&. Duplicate option names are not allowed (although it\*(Aqs OK for a table option and a column option to have the same name)\&. Option names and values are also validated using the foreign data wrapper library\&. .RE .PP All the actions except RENAME and SET SCHEMA can be combined into a list of multiple alterations to apply in parallel\&. For example, it is possible to add several columns and/or alter the type of several columns in a single command\&. .PP You must own the table to use \fBALTER FOREIGN TABLE\fR\&. To change the schema of a foreign 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 table\*(Aqs schema\&. (These restrictions enforce that altering the owner doesn\*(Aqt do anything you couldn\*(Aqt do by dropping and recreating the table\&. However, a superuser can alter ownership of any table anyway\&.) To add a column or alter a column type, you must also have USAGE privilege on the data type\&. .SH "PARAMETERS" .PP \fIname\fR .RS 4 The name (possibly schema\-qualified) of an existing foreign table to alter\&. .RE .PP \fIcolumn_name\fR .RS 4 Name of a new or existing column\&. .RE .PP \fInew_column_name\fR .RS 4 New name for an existing column\&. .RE .PP \fInew_name\fR .RS 4 New name for the table\&. .RE .PP \fIdata_type\fR .RS 4 Data type of the new column, or new data type for an existing column\&. .RE .PP CASCADE .RS 4 Automatically drop objects that depend on the dropped column (for example, views referencing the column)\&. .RE .PP RESTRICT .RS 4 Refuse to drop the column if there are any dependent objects\&. This is the default behavior\&. .RE .PP \fInew_owner\fR .RS 4 The user name of the new owner of the table\&. .RE .PP \fInew_schema\fR .RS 4 The name of the schema to which the table will be moved\&. .RE .SH "NOTES" .PP The key word COLUMN is noise and can be omitted\&. .PP Consistency with the foreign server is not checked when a column is added or removed with ADD COLUMN or DROP COLUMN, a NOT NULL constraint is added, or a column type is changed with SET DATA TYPE\&. It is the user\*(Aqs responsibility to ensure that the table definition matches the remote side\&. .PP Refer to CREATE FOREIGN TABLE (\fBCREATE_FOREIGN_TABLE\fR(7)) for a further description of valid parameters\&. .SH "EXAMPLES" .PP To mark a column as not\-null: .sp .if n \{\ .RS 4 .\} .nf ALTER FOREIGN TABLE distributors ALTER COLUMN street SET NOT NULL; .fi .if n \{\ .RE .\} .PP To change options of a foreign table: .sp .if n \{\ .RS 4 .\} .nf ALTER FOREIGN TABLE myschema\&.distributors OPTIONS (ADD opt1 \*(Aqvalue\*(Aq, SET opt2, \*(Aqvalue2\*(Aq, DROP opt3 \*(Aqvalue3\*(Aq); .fi .if n \{\ .RE .\} .SH "COMPATIBILITY" .PP The forms ADD, DROP, and SET DATA TYPE conform with the SQL standard\&. The other forms are PostgreSQL extensions of the SQL standard\&. Also, the ability to specify more than one manipulation in a single \fBALTER FOREIGN TABLE\fR command is an extension\&. .PP \fBALTER FOREIGN TABLE DROP COLUMN\fR can be used to drop the only column of a foreign table, leaving a zero\-column table\&. This is an extension of SQL, which disallows zero\-column foreign tables\&.