ALTER TABLE

Function

Modify a table, including modifying the definition of a table, renaming a table, renaming a specified column in a table, adding or updating multiple columns, and changing a column-store table to an HStore table.

Precautions

Modifying Table Attributes

Syntax:

1
ALTER TABLE [ IF EXISTS ] <table_name> SET  ( {ENABLE_HSTORE = ON} [, ... ] );

To change a column-store table to an HStore table, run the following command:

1
2
CREATE TABLE alter_test(a int, b int) WITH(ORIENTATION = COLUMN);
ALTER TABLE alter_test SET (ENABLE_HSTORE = ON);

To use HStore tables, set the following parameters, or the HStore performance will deteriorate severely. The recommended settings are as follows:

autovacuum_max_workers_hstore=3, autovacuum_max_workers=6, autovacuum=true

Adding a Column

Syntax:

1
ALTER TABLE [ IF EXISTS ] <table_name> ADD COLUMN <new_column> <data_type> [ DEFAULT <default_value>];

Example:

Create the alter_test2 table and add a column to it.

1
2
CREATE TABLE alter_test2(a int, b int) WITH(ORIENTATION = COLUMN,ENABLE_HSTORE = ON);
ALTER TABLE alter_test ADD COLUMN c int;

When adding a column, you are not advised to use ALTER to specify other operations in the same SQL statement.

Renaming

Syntax:

1
ALTER TABLE [ IF EXISTS ] <table_name> RENAME TO <new_table_name>;

Example:

Create table alter_test3 and rename it as alter_new.

1
2
CREATE TABLE alter_test3(a int, b int) WITH(ORIENTATION = COLUMN,ENABLE_HSTORE = ON);
ALTER TABLE alter_test3 RENAME TO alter_new;