Closed nene closed 3 months ago
[GLOBAL | LOCAL] {TEMPORARY | TEMP}
UNLOGGED
IF NOT EXISTS
OF type_name
PARTITION OF parent_table
STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT }
COMPRESSION { pglz | lz4 | default}
COLLATE collation
column_name [WITH OPTIONS]
CONSTRAINT name
NULL | NOT NULL
CHECK ( expression )
DEFAULT expr
GENERATED ALWAYS AS ( expr ) STORED
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( sequence_options )
UNIQUE [ NULLS [ NOT ] DISTINCT ] index_parameters
PRIMARY KEY index_parameters
REFERENCES ...
NO INHERIT
DEFERRABLE | NOT DEFERRABLE
INITIALLY DEFERRED | INITIALLY IMMEDIATE
UNIQUE [ NULLS [ NOT ] DISTINCT ] ( column_name [, ... ] ) index_parameters
PRIMARY KEY ( column_name [, ... ] ) index_parameters
EXCLUDE
[ USING index_method ]
( expr WITH operator [, ... ] )
( expr [opclass] [ASC|DESC] [NULLS {FIRST|LAST}] WITH operator, ... )
index_parameters
[ WHERE ( predicate ) ]
FOREIGN KEY ...
REFERENCES tbl_name [(key_part,...)]
[MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
[ON DELETE referencial_action]
[ON UPDATE referencial_action]
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
SET NULL ( col1, col2, ...)
SET DEFAULT ( col1, col2, ...)
INCLUDE ( column_name [, ... ] )
WITH ( storage_parameter [= value] [, ... ] )
USING INDEX TABLESPACE tablespace_name
CREATE TABLE .. ( LIKE source_table [like_option] )
{ INCLUDING | EXCLUDING } { COMMENTS | COMPRESSION | CONSTRAINTS | DEFAULTS | GENERATED | IDENTITY | INDEXES | STATISTICS | STORAGE | ALL }
INHERITS (table , ...)
FOR VALUES partition_bound_spec | DEFAULT
IN ( expr [, ...] )
FROM ( { expr | MINVALUE | MAXVALUE } [, ...] ) TO ( { expr | MINVALUE | MAXVALUE } [, ...] )
WITH ( MODULUS numeric_literal, REMAINDER numeric_literal )
PARTITION BY { RANGE | LIST | HASH } ( part_param, ... )
part_param
column_name | ( expr )
[COLLATE collation]
[opclass]
USING method
WITHOUT OIDS
ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP }
TABLESPACE tablespace_name
(column_name, ...)
AS query
WITH [NO] DATA
OPTIONS ( option 'value', ... )
SERVER server_name
DDL
[GLOBAL | LOCAL] {TEMPORARY | TEMP}
UNLOGGED
IF NOT EXISTS
OF type_name
PARTITION OF parent_table
STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT }
COMPRESSION { pglz | lz4 | default}
COLLATE collation
column_name [WITH OPTIONS]
(syntax sugar which has no effect)CONSTRAINT name
NULL | NOT NULL
CHECK ( expression )
DEFAULT expr
(unlike SQLite and BigQuery which only support literals in here)GENERATED ALWAYS AS ( expr ) STORED
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( sequence_options )
see CREATE SEQUENCEUNIQUE [ NULLS [ NOT ] DISTINCT ] index_parameters
PRIMARY KEY index_parameters
REFERENCES ...
NO INHERIT
DEFERRABLE | NOT DEFERRABLE
INITIALLY DEFERRED | INITIALLY IMMEDIATE
CONSTRAINT name
CHECK ( expression )
UNIQUE [ NULLS [ NOT ] DISTINCT ] ( column_name [, ... ] ) index_parameters
PRIMARY KEY ( column_name [, ... ] ) index_parameters
EXCLUDE
[ USING index_method ]
( expr WITH operator [, ... ] )
( expr [opclass] [ASC|DESC] [NULLS {FIRST|LAST}] WITH operator, ... )
index_parameters
[ WHERE ( predicate ) ]
FOREIGN KEY ...
NO INHERIT
DEFERRABLE | NOT DEFERRABLE
INITIALLY DEFERRED | INITIALLY IMMEDIATE
REFERENCES tbl_name [(key_part,...)]
[MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
[ON DELETE referencial_action]
[ON UPDATE referencial_action]
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
SET NULL ( col1, col2, ...)
SET DEFAULT ( col1, col2, ...)
INCLUDE ( column_name [, ... ] )
WITH ( storage_parameter [= value] [, ... ] )
USING INDEX TABLESPACE tablespace_name
CREATE TABLE .. ( LIKE source_table [like_option] )
unlike with other dialects, the LIKE clause is inside columns list.{ INCLUDING | EXCLUDING } { COMMENTS | COMPRESSION | CONSTRAINTS | DEFAULTS | GENERATED | IDENTITY | INDEXES | STATISTICS | STORAGE | ALL }
INHERITS (table , ...)
FOR VALUES partition_bound_spec | DEFAULT
IN ( expr [, ...] )
FROM ( { expr | MINVALUE | MAXVALUE } [, ...] ) TO ( { expr | MINVALUE | MAXVALUE } [, ...] )
WITH ( MODULUS numeric_literal, REMAINDER numeric_literal )
PARTITION BY { RANGE | LIST | HASH } ( part_param, ... )
withpart_param
consisting of:column_name | ( expr )
[COLLATE collation]
[opclass]
USING method
WITH ( storage_parameter [= value] [, ... ] )
WITHOUT OIDS
ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP }
TABLESPACE tablespace_name
(column_name, ...)
AS query
WITH [NO] DATA
OPTIONS ( option 'value', ... )
SERVER server_name