创建表(CREATE TABLE)
CreateTableStmt ::=
'CREATE' 'TABLE' IfNotExists TableName (
TableElementList CreateTableSelectOpt | LikeTableWithOrWithoutParen ) OnCommitOpt
IfNotExists ::=
('IF' 'NOT' 'EXISTS')?
TableName ::=
Identifier ('.' Identifier)?
TableElementList ::=
TableElement ( ',' TableElement )*
TableElement ::=
ColumnDef
| ColumnIndex
CREATE TABLE 语句用于创建一张表。同一个数据库下,表名在必须是唯一的,在同一个数据库下,重复创建同名表,会发生错误。
建表语句中需要定义table_element列表。table_element分为列描述ColumnDef和Constraint。OpenMLDB要求table_element列表中至少包含一个ColumnDef。
列描述ColumnDef(必要)
一张表中包含一个或多个列。每一列的列描述ColumnDef描述了列名、列类型以及类配置。
列名:列在表中的名字。同一张表内的列名必须是唯一的。
列类型:列的类型。想要了解OpenMLDB支持的数据类型,可以参考数据类型。
列约束配置:
DEFAULT: 配置列默认值。NOT NULL的属性会同时配置DEFAULT默认值,这样的话,查入数据时,若没有定义该列的值,会插入默认值。若配置NOT NULL属性且没有配置DEFAULT值,插入语句中未定义改列值时,OpenMLDB会抛出错误。
Example: 创建一张表
将当前数据库设为db1,在当前数据库中创建一张表t1,包含列col0,列类型为STRING
指定在数据库db1中创建一张表t1,包含列col0,列类型为STRING
Example: 创建一张表,配置列不允许为空NOT NULL
Example: 创建一张表,配置列配置默认值
Example: 在同一个数据库下重复创建同名表
列索引ColumnIndex(可选)
索引可以被数据库搜索引擎用来加速数据的检索。 简单说来,索引就是指向表中数据的指针。配置一个列索引一般需要配置索引key,索引时间列, TTL和TTL_TYPE。其中索引key是必须配置的,其他配置项都为可选。下表列出了列索引配置项:
TTL和TTL_TYPE的配置细则:
Example: 创建一张带单列索引的表
Example: 创建一张带联合列索引的表
Example: 创建一张带单列索引+时间列的表
Example: 创建一张带单列索引+时间列的TTL type为abusolute表,并配置ttl为30天
Example: 创建一张带单列索引+时间列的TTL type为latest表,并配置ttl为1
Example: 创建一张带单列索引+时间列的TTL type为absANDlat表,并配置过期时间为30天,最大留存条数为10条
Example: 创建一张带单列索引+时间列的TTL type为absORlat表,并配置过期时间为30天,最大留存条数为10条
表属性TableOptions(可选)
Example: 创建一张带表,配置分片数为8,副本数为3(例子需要补充完整)@denglong需要提供一个带例子以及desc table的结果
CREATE DATABASE
USE DATABASE