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.
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
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.
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; |