自增列IDENTITY

Lakehouse支持在建表时标识列,将字段的定义自增的字段。

配置自增序列。如下建表使用自增,只支持bigint类型

CREATE TABLE tablename (
    id bigint identity
);

语法

IDENTITY[(seed)]
  • seed:用于加载到表中的第一行的值。如果不指定默认起始值是0

行为说明

  • 无法保证序列中的值是连续的(无间隙),也无法保证序列值按特定顺序分配。因为表中可能会发生其他并发插入。这些限制是设计的一部分,目的是提高性能,因为它们在许多常见情况下都是可以接受的

使用示例

--创建表,包含id和col两个字段。
CREATE TABLE identity_test
(
    id bigint identity (1),
    col string
);

--在insert语句中,给col字段插入数据。
INSERT INTO identity_test (col)
VALUES ('1'),('2'),('3'),('4'),('5');
--查询数据
SELECT * FROM identity_test;
+----+-----+
| id | col |
+----+-----+
| 1  | 1   |
| 2  | 2   |
| 3  | 3   |
| 4  | 4   |
| 5  | 5   |
+----+-----+
--再插入一条数据,无法保证自增连续性
INSERT INTO identity_test (col)
VALUES ('6');
+----+-----+
| id | col |
+----+-----+
| 11 | 6   |
| 1  | 1   |
| 2  | 2   |
| 3  | 3   |
| 4  | 4   |
| 5  | 5   |
+----+-----+
--查看是否含有自增列
SHOW CREATE TABLE identity_test;

限制与约束

  • 暂不支持通过Ingest Service流式接口写入,只在SQL语法层面支持identity列写入
  • 不支持指定步长,默认步长是1
  • 不支持进行alter在已有的表添加自增
  • 不支持外不表、动态表和物化视图设置自增
  • 只支持bigint类型

联系我们
预约咨询
微信咨询
电话咨询