执行CREATE TABLE语句创建表及映射关系。如果表存在,则只创建映射关系;如果表不存在,则同时创建同名表。

注意 目前执行CREATE TABLE语句暂不支持创建表,只能为已有表创建映射关系。

语法

CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type [NOT NULL | NULL],...
| PRIMARY KEY(key_part[,key_part])
);
当表只有一个主键时,您还可以使用如下语法创建表及映射关系。
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type PRIMARY KEY,column_name data_type [NOT NULL | NULL],...
);

参数

参数 是否必选 说明
IF NOT EXISTS 如果指定IF NOT EXISTS,无论表是否存在,均会返回成功;如果未指定IF NOT EXISTS,则只有当表不存在时,才会返回成功。
table_name 表名,用于唯一标识一张表。

SQL中的表名必须和原始表名相同。

column_name 列名。

SQL中的列名必须和原始表中的列名等效,例如原始表中列名为Aa,在SQL中列名必须使用Aa、AA、aA或者aa中的一个。

data_type 列的数据类型,包含BIGINT、DOUBLE、BOOL等多种数据类型。

SQL中列的数据类型必须和原始表中列的数据类型相匹配。关于数据类型映射的更多信息,请参见数据类型映射

NOT NULL | NULL 列值是否允许为NULL。取值范围如下:
  • NOT NULL:禁止该列的值为NULL,主键列默认不允许为NULL。
  • NULL:允许该列的值为NULL,属性列默认允许为NULL。

    当某属性列值不能为NULL时,请指定该列为NOT NULL。

key_part 主键列名称。支持设置多个主键列,多个主键列之间用英文逗号(,)分隔。

主键列名称必须包含在列名中。

示例

  • 创建名称为exampletable1的表,表包含主键列id(BIGINT类型)以及属性列colvalue(BIGINT类型)和content(MEDIUMTEXT)。
    CREATE TABLE exampletable1 (id BIGINT PRIMARY KEY, colvalue BIGINT, content MEDIUMTEXT);
  • 创建名称为exampletable2的表,表包含主键列id(BIGINT类型)、colvalue(VARCHAR类型)以及属性列content(MEDIUMTEXT类型)。
    CREATE TABLE exampletable2 (id BIGINT, colvalue VARCHAR(1024), content MEDIUMTEXT, PRIMARY KEY(colvalue, id));