创建Lindorm表结构。

语法

create_table_statement ::=  CREATE TABLE [ IF NOT EXISTS ] table_name
                            '('
                                column_definition
                                ( ',' column_definition )*
                                 ',' [constraint pk]  PRIMARY KEY '(' primary_key ')' 
                            ')' WITH [ table_options ]
column_definition      ::=  column_name lql_type 
primary_key            ::=  column_name [ ',' column_name (ASC|DESC)]
说明 创建表语句支持IF NOT EXISTS,其中主键由某个或某几个列组合而成。

支持的Table_Option列表

选项 类型 描述
COMPRESSION String 表的压缩算法。默认不设置,可选的压缩算法分别是:
  • SNAPPY
  • ZSTD
  • LZ4
TTL Int 数据有效期,单位为秒,默认永不过期。
MUTABILITY String 索引相关,表示对主表的写入模式进行分类,可选值:
  • IMMUTABLE
  • IMMUTABLE_ROWS
  • MUTABLE_LATEST(默认值)
  • MUTABLE_ALL
说明 具体含义请参见高性能原生二级索引
CONSISTENCY String 表的一致性。主表和索引表默认最终一致,可选四种级别分别是:
  • Eventual:表示在某个时间点后最终保持一致。
  • Strong:表示强一致性。在任意时刻,所有表中的数据是同步一致的。
NUMREGIONS Int 预先设置建表时的Region数。
STARTKEY和ENDKEY String 预先设置建表的Region分区起止Key。
USE_HASH String 是否使用Hash Key功能。取值:
  • True:是,如果使用Hash Key功能,业务Key会被Hash打散,能够保证均匀的读写负载,但是无法使用Scan查询操作。
  • False:否,默认值。
DYNAMIC_COLUMNS String 是否开启动态列。取值:
  • True:是。
  • False:否,默认值。
说明 动态列只支持Varbinary类型。
说明 Lindorm 2.2.16版本后设置表属性支持多种关键字,Lindorm 2.2.16版本前设置表属性无需添加WITH关键字,设置表属性需要在属性关键字KEY上添加单引号('),属性VALUE上基于类型进行设置,如果属性VALUE类型是字符串则添加单引号(')。 但是自Lindorm 2.2.16版本,不但支持Lindorm 2.2.16版本前语法规则,而且还支持表属性前加关键字WITH,所有属性的KEY两边无需添加单引号('),属性VALUE两边添加单引号(')。以下示例都可以执行。

示例

use my_schema;
create table dt (
  p1 integer, p2 binary(3), c1 varchar, c2 decimal(22, 2),
  primary key(p1, p2 desc));

create table dt (
  p1 integer, p2 integer, c1 varchar, c2 bigint,
  constraint pk primary key(p1 desc)) WITH (COMPRESSION='ZSTD', TTL='2592000');
  
create table my_schema.dt (
  p1 integer, p2 binary(3), c1 varchar, c2 decimal(22, 2),
  constraint pk primary key(p1, p2 desc));  

create table dt (  
  p1 integer, p2 integer, c1 varchar, c2 bigint,  constraint pk primary key(p1 desc)) 'COMPRESSION'='ZSTD', 'TTL'='2592000';