IF NOT EXISTS | Create a new table only if a table of the same name does not already exist in the database; if one does exist, do not return an error. Note that IF NOT EXISTS checks the table name only; it does not check if an existing table has the same columns, indexes, constraints, etc., of the new table. |
table\_name | The name of the table to create, which must be unique within its database and follow these . When the parent database is not set as the default, the name must be formatted as database.name. The and statements use a temporary table called excluded to handle uniqueness conflicts during execution. It’s therefore not recommended to use the name excluded for any of your tables. |
column\_name | The name of the column you want to use instead of the name of the column from select\_stmt. |
create\_as\_col\_qual\_list | An optional column definition, which may include and . |
family\_def | An optional . Column family names must be unique within the table but can have the same name as columns, constraints, or indexes. |
create\_as\_constraint\_def | An optional . |
select\_stmt | A to provide the data. |
opt\_persistence\_temp\_table | Defines the table as a session-scoped temporary table. For more information, see . Note that the LOCAL, GLOBAL, and UNLOGGED options are no-ops, allowed by the parser for PostgreSQL compatibility. Support for temporary tables is . |
opt\_with\_storage\_parameter\_list | A comma-separated list of . Supported parameters include fillfactor, s2\_max\_level, s2\_level\_mod, s2\_max\_cells, geometry\_min\_x, geometry\_max\_x, geometry\_min\_y, and geometry\_max\_y. The fillfactor parameter is a no-op, allowed for PostgreSQL-compatibility. For details, see . For an example, see . |
ON COMMIT PRESERVE ROWS | This clause is a no-op, allowed by the parser for PostgreSQL compatibility. CockroachDB only supports session-scoped , and does not support the clauses ON COMMIT DELETE ROWS and ON COMMIT DROP, which are used to define transaction-scoped temporary tables in PostgreSQL. |