CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] $table_name$ ( [
    { $column_name$ $data_type$ [ COMPRESSION $compression_method$ ] [ COLLATE $collation$ ] [ $column_constraint$ [ ... ] ]
    | $table_constraint$
    | LIKE $source_table$ [ $like_option$ ... ] }
    [ , ... ]
    ] )
    [ INHERITS ( $parent_table$ [ , ... ] ) ]
    [ PARTITION BY { RANGE | LIST | HASH } ( { { $column_name$ | ( $expression$ ) } [ COLLATE $collation$ ] [ $opclass$ ] } [ , ... ] ) ]
    [ USING $method$ ]
    [ WITH ( { $storage_parameter$ [ = $value$ ] } [ , ... ] ) | WITHOUT OIDS ]
    [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
    [ TABLESPACE $tablespace_name$ ]

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] $table_name$
    OF $type_name$ [ (
    { $column_name$ [ WITH OPTIONS ] [ $column_constraint$ [ ... ] ]
    | $table_constraint$ }
    [ , ... ]
    ) ]
    [ PARTITION BY { RANGE | LIST | HASH } ( { { $column_name$ | ( $expression$ ) } [ COLLATE $collation$ ] [ $opclass$ ] } [ , ... ] ) ]
    [ USING $method$ ]
    [ WITH ( { $storage_parameter$ [ = $value$ ] } [ , ... ] ) | WITHOUT OIDS ]
    [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
    [ TABLESPACE $tablespace_name$ ]

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] $table_name$
    PARTITION OF $parent_table$ [ (
    { $column_name$ [ WITH OPTIONS ] [ $column_constraint$ [ ... ] ]
    | $table_constraint$ }
    [ , ... ]
    ) ] { FOR VALUES $partition_bound_spec$ | DEFAULT }
    [ PARTITION BY { RANGE | LIST | HASH } ( { { $column_name$ | ( $expression$ ) } [ COLLATE $collation$ ] [ $opclass$ ] } [ , ... ] ) ]
    [ USING $method$ ]
    [ WITH ( { $storage_parameter$ [ = $value$ ] } [ , ... ] ) | WITHOUT OIDS ]
    [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
    [ TABLESPACE $tablespace_name$ ]

where $column_constraint$ is:

[ CONSTRAINT $constraint_name$ ]
    { NOT NULL |
    NULL |
    CHECK ( $expression$ ) [ NO INHERIT ] |
    DEFAULT $default_expr$ |
    GENERATED ALWAYS AS ( $generation_expr$ ) STORED |
    GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( $sequence_options$ ) ] |
    UNIQUE [ NULLS [ NOT ] DISTINCT ] $column_index_parameters$ |
    PRIMARY KEY $column_index_parameters$ |
    REFERENCES $reftable$ [ ( $refcolumn$ ) ] [ MATCH FULL | MATCH SIMPLE ]
    [ ON DELETE $referential_action$ ] [ ON UPDATE $referential_action$ ] }
    [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

where $table_constraint$ is:

[ CONSTRAINT $constraint_name$ ]
    { CHECK ( $expression$ ) [ NO INHERIT ] |
    UNIQUE [ NULLS [ NOT ] DISTINCT ] ( $column_name$ [ , ... ] ) $index_parameters$ |
    PRIMARY KEY ( $column_name$ [ , ... ] ) $index_parameters$ |
    EXCLUDE [ USING $index_method$ ] ( { $exclude_element$ WITH $operator$ } [ , ... ] ) $index_parameters$ [ WHERE ( $predicate$ ) ] |
    FOREIGN KEY ( $column_name$ [ , ... ] ) REFERENCES $reftable$ [ ( $refcolumn$ [ , ... ] ) ]
    [ MATCH FULL | MATCH SIMPLE ] [ ON DELETE $referential_action$ ] [ ON UPDATE $referential_action$ ] }
    [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

where $like_option$ is:

{ INCLUDING | EXCLUDING } { COMMENTS | COMPRESSION | CONSTRAINTS | DEFAULTS | GENERATED | IDENTITY | INDEXES | STATISTICS | STORAGE | ALL }

where $partition_bound_spec$ is:

IN ( $partition_bound_expr$ [ , ... ] ) |
    FROM ( { $partition_bound_expr$ | MINVALUE | MAXVALUE } [ , ... ] )
    TO ( { $partition_bound_expr$ | MINVALUE | MAXVALUE } [ , ... ] ) |
    WITH ( MODULUS $numeric_literal$, REMAINDER $numeric_literal$ )

where $index_parameters$ is:

[ INCLUDE ( $column_name$ [ , ... ] ) ]
    [ WITH ( { $storage_parameter$ [ = $value$ ] } [ , ... ] ) ]
    [ USING INDEX TABLESPACE $tablespace_name$ ]

where $column_index_parameters$ is:

USING INDEX TABLESPACE $tablespace_name$

where $exclude_element$ is:

{ $column_name$ | ( $expression$ ) } [ $opclass$ ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]

where $referential_action$ is:

{ NO ACTION | RESTRICT | CASCADE | SET NULL [ ( $column_name$ [ , ... ] ) ] | SET DEFAULT [ ( $column_name$ [ , ... ] ) ] }
