ALTER TABLE
Changes the definition of a table.
Synopsis
ALTER TABLE [IF EXISTS] [ONLY] <name> [ * ]
<action> [, ... ]
ALTER TABLE [IF EXISTS] [ONLY] <name> [ * ]
RENAME [COLUMN] <column_name> TO <new_column_name>
ALTER TABLE [IF EXISTS] [ ONLY ] <name> [ * ]
RENAME CONSTRAINT <constraint_name> TO <new_constraint_name>
ALTER TABLE [IF EXISTS] <name>
RENAME TO <new_name>
ALTER TABLE [IF EXISTS] <name>
SET SCHEMA <new_schema>
ALTER TABLE ALL IN TABLESPACE <name> [ OWNED BY <role_name> [, ... ] ]
SET TABLESPACE <new_tablespace> [ NOWAIT ]
ALTER TABLE [ IF EXISTS ] <name>
ATTACH PARTITION <partition_name> { FOR VALUES <partition_bound_spec> | DEFAULT }
ALTER TABLE [ IF EXISTS ] <name>
DETACH PARTITION <partition_name>
ALTER TABLE [IF EXISTS] [ONLY] <name> SET
[ WITH (reorganize={ true | false }) ]
DISTRIBUTED BY ({<column_name> [<opclass>]} [, ... ] )
| DISTRIBUTED RANDOMLY
| DISTRIBUTED REPLICATED
-- where <action> is one of:
ADD [COLUMN] [IF NOT EXISTS] <column_name> <data_type> [ COLLATE <collation> ] [<column_constraint> [ ... ]]
[ ENCODING ( <storage_directive> [,...] ) ]
DROP [COLUMN] [IF EXISTS] <column_name> [RESTRICT | CASCADE]
ALTER [COLUMN] <column_name> [ SET DATA ] TYPE <data_type> [COLLATE <collation>] [USING <expression>]
ALTER [COLUMN] <column_name> SET DEFAULT <expression>
ALTER [COLUMN] <column_name> DROP DEFAULT
ALTER [COLUMN] <column_name> { SET | DROP } NOT NULL
ALTER [COLUMN] <column_name> ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( <sequence_options> ) ]
ALTER [COLUMN] <column_name> { SET GENERATED { ALWAYS | BY DEFAULT }
| SET <sequence_option>
| RESTART [ [ WITH ] <restart> ] } [...]
ALTER [COLUMN] <column_name> DROP IDENTITY [ IF EXISTS ]