pub struct CreateTable {Show 53 fields
pub or_replace: bool,
pub temporary: bool,
pub external: bool,
pub dynamic: bool,
pub global: Option<bool>,
pub if_not_exists: bool,
pub transient: bool,
pub volatile: bool,
pub iceberg: bool,
pub name: ObjectName,
pub columns: Vec<ColumnDef>,
pub constraints: Vec<TableConstraint>,
pub hive_distribution: HiveDistributionStyle,
pub hive_formats: Option<HiveFormat>,
pub table_options: CreateTableOptions,
pub file_format: Option<FileFormat>,
pub location: Option<String>,
pub query: Option<Box<Query>>,
pub without_rowid: bool,
pub like: Option<CreateTableLikeKind>,
pub clone: Option<ObjectName>,
pub version: Option<TableVersion>,
pub comment: Option<CommentDef>,
pub on_commit: Option<OnCommit>,
pub on_cluster: Option<Ident>,
pub primary_key: Option<Box<Expr>>,
pub order_by: Option<OneOrManyWithParens<Expr>>,
pub partition_by: Option<Box<Expr>>,
pub cluster_by: Option<WrappedCollection<Vec<Expr>>>,
pub clustered_by: Option<ClusteredBy>,
pub inherits: Option<Vec<ObjectName>>,
pub partition_of: Option<ObjectName>,
pub for_values: Option<ForValues>,
pub strict: bool,
pub copy_grants: bool,
pub enable_schema_evolution: Option<bool>,
pub change_tracking: Option<bool>,
pub data_retention_time_in_days: Option<u64>,
pub max_data_extension_time_in_days: Option<u64>,
pub default_ddl_collation: Option<String>,
pub with_aggregation_policy: Option<ObjectName>,
pub with_row_access_policy: Option<RowAccessPolicy>,
pub with_tags: Option<Vec<Tag>>,
pub external_volume: Option<String>,
pub base_location: Option<String>,
pub catalog: Option<String>,
pub catalog_sync: Option<String>,
pub storage_serialization_policy: Option<StorageSerializationPolicy>,
pub target_lag: Option<String>,
pub warehouse: Option<Ident>,
pub refresh_mode: Option<RefreshModeKind>,
pub initialize: Option<InitializeKind>,
pub require_user: bool,
}Expand description
CREATE TABLE statement.
Fields§
§or_replace: boolOR REPLACE clause
temporary: boolTEMP or TEMPORARY clause
external: boolEXTERNAL clause
dynamic: boolDYNAMIC clause
global: Option<bool>GLOBAL clause
if_not_exists: boolIF NOT EXISTS clause
transient: boolTRANSIENT clause
volatile: boolVOLATILE clause
iceberg: boolICEBERG clause
name: ObjectNameTable name
columns: Vec<ColumnDef>Column definitions
constraints: Vec<TableConstraint>Table constraints
hive_distribution: HiveDistributionStyleHive-specific distribution style
hive_formats: Option<HiveFormat>Hive-specific formats like ROW FORMAT DELIMITED or ROW FORMAT SERDE 'serde_class' WITH SERDEPROPERTIES (...)
table_options: CreateTableOptionsTable options
file_format: Option<FileFormat>General comment for the table
location: Option<String>Location of the table data
query: Option<Box<Query>>Query used to populate the table
without_rowid: boolIf the table should be created without a rowid (SQLite)
like: Option<CreateTableLikeKind>LIKE clause
clone: Option<ObjectName>CLONE clause
version: Option<TableVersion>Table version (for systems that support versioned tables)
comment: Option<CommentDef>For Hive dialect, the table comment is after the column definitions without =,
so the comment field is optional and different than the comment field in the general options list.
Hive
on_commit: Option<OnCommit>ClickHouse “ON COMMIT” clause: https://clickhouse.com/docs/en/sql-reference/statements/create/table/
on_cluster: Option<Ident>ClickHouse “ON CLUSTER” clause: https://clickhouse.com/docs/en/sql-reference/distributed-ddl/
primary_key: Option<Box<Expr>>ClickHouse “PRIMARY KEY “ clause. https://clickhouse.com/docs/en/sql-reference/statements/create/table/
order_by: Option<OneOrManyWithParens<Expr>>ClickHouse “ORDER BY “ clause. Note that omitted ORDER BY is different than empty (represented as ()), the latter meaning “no sorting”. https://clickhouse.com/docs/en/sql-reference/statements/create/table/
partition_by: Option<Box<Expr>>BigQuery: A partition expression for the table. https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#partition_expression
cluster_by: Option<WrappedCollection<Vec<Expr>>>BigQuery: Table clustering column list. https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#table_option_list Snowflake: Table clustering list which contains base column, expressions on base columns. https://docs.snowflake.com/en/user-guide/tables-clustering-keys#defining-a-clustering-key-for-a-table
clustered_by: Option<ClusteredBy>Hive: Table clustering column list. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable
inherits: Option<Vec<ObjectName>>Postgres INHERITs clause, which contains the list of tables from which
the new table inherits.
https://www.postgresql.org/docs/current/ddl-inherit.html
https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-PARMS-INHERITS
partition_of: Option<ObjectName>PostgreSQL PARTITION OF clause to create a partition of a parent table.
Contains the parent table name.
https://www.postgresql.org/docs/current/sql-createtable.html
for_values: Option<ForValues>PostgreSQL partition bound specification for PARTITION OF. https://www.postgresql.org/docs/current/sql-createtable.html
strict: boolSQLite “STRICT” clause. if the “STRICT” table-option keyword is added to the end, after the closing “)”, then strict typing rules apply to that table.
copy_grants: boolSnowflake “COPY GRANTS” clause https://docs.snowflake.com/en/sql-reference/sql/create-table
enable_schema_evolution: Option<bool>Snowflake “ENABLE_SCHEMA_EVOLUTION” clause https://docs.snowflake.com/en/sql-reference/sql/create-table
change_tracking: Option<bool>Snowflake “CHANGE_TRACKING” clause https://docs.snowflake.com/en/sql-reference/sql/create-table
data_retention_time_in_days: Option<u64>Snowflake “DATA_RETENTION_TIME_IN_DAYS” clause https://docs.snowflake.com/en/sql-reference/sql/create-table
max_data_extension_time_in_days: Option<u64>Snowflake “MAX_DATA_EXTENSION_TIME_IN_DAYS” clause https://docs.snowflake.com/en/sql-reference/sql/create-table
default_ddl_collation: Option<String>Snowflake “DEFAULT_DDL_COLLATION” clause https://docs.snowflake.com/en/sql-reference/sql/create-table
with_aggregation_policy: Option<ObjectName>Snowflake “WITH AGGREGATION POLICY” clause https://docs.snowflake.com/en/sql-reference/sql/create-table
with_row_access_policy: Option<RowAccessPolicy>Snowflake “WITH ROW ACCESS POLICY” clause https://docs.snowflake.com/en/sql-reference/sql/create-table
Snowflake “WITH TAG” clause https://docs.snowflake.com/en/sql-reference/sql/create-table
external_volume: Option<String>Snowflake “EXTERNAL_VOLUME” clause for Iceberg tables https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table
base_location: Option<String>Snowflake “BASE_LOCATION” clause for Iceberg tables https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table
catalog: Option<String>Snowflake “CATALOG” clause for Iceberg tables https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table
catalog_sync: Option<String>Snowflake “CATALOG_SYNC” clause for Iceberg tables https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table
storage_serialization_policy: Option<StorageSerializationPolicy>Snowflake “STORAGE_SERIALIZATION_POLICY” clause for Iceberg tables https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table
target_lag: Option<String>Snowflake “TARGET_LAG” clause for dybamic tables https://docs.snowflake.com/en/sql-reference/sql/create-dynamic-table
warehouse: Option<Ident>Snowflake “WAREHOUSE” clause for dybamic tables https://docs.snowflake.com/en/sql-reference/sql/create-dynamic-table
refresh_mode: Option<RefreshModeKind>Snowflake “REFRESH_MODE” clause for dybamic tables https://docs.snowflake.com/en/sql-reference/sql/create-dynamic-table
initialize: Option<InitializeKind>Snowflake “INITIALIZE” clause for dybamic tables https://docs.snowflake.com/en/sql-reference/sql/create-dynamic-table
require_user: boolSnowflake “REQUIRE USER” clause for dybamic tables https://docs.snowflake.com/en/sql-reference/sql/create-dynamic-table
Trait Implementations§
Source§impl Clone for CreateTable
impl Clone for CreateTable
Source§fn clone(&self) -> CreateTable
fn clone(&self) -> CreateTable
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CreateTable
impl Debug for CreateTable
Source§impl Display for CreateTable
impl Display for CreateTable
Source§impl From<CreateTable> for CreateTableBuilder
impl From<CreateTable> for CreateTableBuilder
Source§fn from(table: CreateTable) -> Self
fn from(table: CreateTable) -> Self
Source§impl From<CreateTable> for Statement
impl From<CreateTable> for Statement
Source§fn from(c: CreateTable) -> Self
fn from(c: CreateTable) -> Self
Source§impl Hash for CreateTable
impl Hash for CreateTable
Source§impl Ord for CreateTable
impl Ord for CreateTable
Source§fn cmp(&self, other: &CreateTable) -> Ordering
fn cmp(&self, other: &CreateTable) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for CreateTable
impl PartialEq for CreateTable
Source§impl PartialOrd for CreateTable
impl PartialOrd for CreateTable
Source§impl Spanned for CreateTable
impl Spanned for CreateTable
Source§impl Visit for CreateTable
impl Visit for CreateTable
Source§impl VisitMut for CreateTable
impl VisitMut for CreateTable
Source§fn visit<V: VisitorMut>(&mut self, visitor: &mut V) -> ControlFlow<V::Break>
fn visit<V: VisitorMut>(&mut self, visitor: &mut V) -> ControlFlow<V::Break>
VisitorMut. Read more