---
title: "ALTER SEQUENCE - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: "ALTER SEQUENCE 描述 该语句用于更改现有序列的增量、最小值和最大值、缓存数量和行为，对应操作仅影响后续的序列号。 说明 您只能修改当前 Schema 下的序列，或者拥有该序列的 ALTER 权限。 语法 ALTER SEQUENCE [schema.]sequence_name { RESTART [S…"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# ALTER SEQUENCE

更新时间：2026-04-12 16:34:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/900.sql-statement-of-oracle-mode/100.ddl-of-oracle-mode/600.alter-sequence-of-oracle-mode.md)  

## 描述

该语句用于更改现有序列的增量、最小值和最大值、缓存数量和行为，对应操作仅影响后续的序列号。

#### 说明

您只能修改当前 Schema 下的序列，或者拥有该序列的 `ALTER` 权限。

## 语法

```sql
ALTER SEQUENCE [schema.]sequence_name
{
    RESTART [START WITH integer]
    | MINVALUE integer | NOMINVALUE
    | MAXVALUE integer | NOMAXVALUE
    | INCREMENT BY integer
    | CACHE integer | NOCACHE
    | ORDER | NOORDER
    | CYCLE | NOCYCLE
}

```

## 语法说明

| 字段 | 描述 |
| --- | --- |
| schema. | 指定包含序列的 Schema。如果省略 Schema，则数据库会在用户当前所在的 Schema 中更改序列。 |
| sequence_name | 要更改的序列名称。 |
| RESTART | 重置序列值。升序时 从 `MINVALUE` 重新开始取值；降序时从 `MAXVALUE` 重新开始取值；或者，使用 `START WITH int_value` 从 `int_value` 处开始取值。 |
| MINVALUE int_value | 更改序列的最小值，`int_value` 的取值范围是 [-9223372036854775808,9223372036854775807]。 |
| NOMINVALUE | 如果更改为 `NOMINVALUE`，则升序时最小值为 1，降序时最小值为 -9223372036854775808。 |
| MAXVALUE int_value | 更改序列的最大值，`int_value` 的取值范围是 [-9223372036854775808,9223372036854775807]。新指定的 `MAXVALUE` 不能小于当前序列号的值。    **注意**  - 同时指定 `MINVALUE` 和 `MAXVALUE` 时，`MINVALUE` 必须小于 `MAXVALUE`。 - `MAXVALUE` 和 `MINVALUE` 之差必须大于等于 INCREMENT BY 中 的 `int_value`。 |
| NOMAXVALUE | 如果更改为 `NOMAXVALUE`，则升序时最大值为9223372036854775807，降序时最大值为 -1。 |
| INCREMENT BY int_value | 更改序列的自增步数。`int_value` 不可以为 0。如果指定为正数，则序列为升序；如果指定为负数，则序列为降序。不指定时缺省值为 1。 |
| CACHE int_value | 更改在内存中预分配的自增值个数，`int_value` 默认为 20。`CACHE int_value` 的值必须大于 1，如果 `CACHE INT_VALUE` 的值为 1，则等价于 `NOCACHE`。 |
| NOCACHE | 更改序列的值为未预先分配。如果同时省略 `CACHE` 和 `NOCACHE`，则数据库默认缓存 20 |
| ORDER | 更改序列的值为按顺序生成。 |
| NOORDER | 如果更改为 `NOORDER`，则指定不保证序列的值按顺序生成。 |
| CYCLE | 更改序列的值为循环生成，即序列在达到其最大值或最小值后继续生成值。在升序达到最大值后，它会生成最小值。在降序序列达到其最小值后，它会生成其最大值。    **注意**  - 如果指定了 `CYCLE`，而且 `INCREMENT BY` 中的 `int_value` 小于 0 时，必须指定 `MINVALUE`。 - 如果指定了 `CYCLE`，`CACHE` 的数量不能超过一个 `CYCLE`。 |
| NOCYCLE | `NOCYCLE` 为默认值，如果更改为 `NOCYCLE`，则指定序列在达到其最大值或最小值后无法生成更多值。 |

## 示例

- 修改自增列 `seq1` 的最大值，并指定自增值循环生成。

  ```sql
  obclient> CREATE SEQUENCE seq1
  START WITH 1
  INCREMENT BY 1
  MAXVALUE 2048
  CYCLE;
  obclient> ALTER SEQUENCE seq1 MAXVALUE 4096 CYCLE;

  ```
 - 更改序列 `seq2` 的最大值和自增步数，开启 `CYCLE` 和 `ORDER`，并指定 `NOCACHE` 以指示序列的值未预先分配。

  ```sql
  obclient> CREATE SEQUENCE seq2
          MINVALUE 1
          MAXVALUE 1000
          START WITH 1
          INCREMENT BY 1
          CACHE 20;

  obclient> ALTER SEQUENCE seq2 MAXVALUE 1500 INCREMENT BY 5 CYCLE NOCACHE ORDER;

  ```
 - 重置序列值，并从 3 开始取值。

  ```sql
  obclient> ALTER SEQUENCE seq2 RESTART;

  obclient> ALTER SEQUENCE seq2 RESTART START WITH 3;

  ```
 - `RESTART` 的位置可以在选项的任意位置。如下示例中的两条重置序列值的 SQL 语句是等价的。

  ```sql
  obclient> ALTER SEQUENCE seq2 START WITH 3 RESTART MINVALUE  -100 CYCLE;

  obclient> ALTER SEQUENCE seq2 RESTART START WITH 3 MINVALUE  -100 CYCLE;

  ```

## 相关文档

- [CREATE SEQUENCE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004480947)
 - [DROP SEQUENCE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004480956)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
