📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

CREATE SEQUENCE



在 TiDB Cloud Lake 中创建一个新的序列。

序列是一种能够自动生成唯一数字标识符的对象,通常用于为表中的行分配不同的值(例如用户 ID)。虽然序列能够保证值的唯一性,但不能保证连续性(即,可能会出现间隔)。

语法

CREATE [ OR REPLACE ] SEQUENCE [ IF NOT EXISTS ] <sequence> [ START [ = ] <start_value> ] [ INCREMENT [ = ] <increment_value> ]
参数描述默认值
<sequence>要创建的序列名称。-
START序列的初始值。1
INCREMENT每次调用 NEXTVAL 时的增量值。1

访问控制要求

权限对象类型描述
CREATE SEQUENCEGlobal创建序列。

要创建序列,执行该操作的用户或 current_role 必须具有 CREATE SEQUENCE 权限。

示例

基本序列

使用默认设置创建一个序列(从 1 开始,每次递增 1):

CREATE SEQUENCE staff_id_seq; CREATE TABLE staff ( staff_id INT, name VARCHAR(50), department VARCHAR(50) ); INSERT INTO staff (staff_id, name, department) VALUES (NEXTVAL(staff_id_seq), 'John Doe', 'HR'); INSERT INTO staff (staff_id, name, department) VALUES (NEXTVAL(staff_id_seq), 'Jane Smith', 'Finance'); SELECT * FROM staff; ┌───────────────────────────────────────────────────────┐ │ staff_id │ name │ department │ ├─────────────────┼──────────────────┼──────────────────┤ │ 2 │ Jane Smith │ Finance │ │ 1 │ John Doe │ HR │ └───────────────────────────────────────────────────────┘

自定义起始值和增量

创建一个从 1000 开始、每次递增 10 的序列:

CREATE SEQUENCE order_id_seq START = 1000 INCREMENT = 10; CREATE TABLE orders ( order_id BIGINT, order_name VARCHAR(100) ); INSERT INTO orders (order_id, order_name) VALUES (NEXTVAL(order_id_seq), 'Order A'); INSERT INTO orders (order_id, order_name) VALUES (NEXTVAL(order_id_seq), 'Order B'); SELECT * FROM orders; ┌──────────────────────────────────┐ │ order_id │ order_name │ ├────────────────┼─────────────────┤ │ 1000 │ Order A │ │ 1010 │ Order B │ └──────────────────────────────────┘

文档内容是否有帮助?