OrientDB序列

OrientDB序列

序列是一个用于自动增量机制的概念,它在OrientDB v2.2中引入。 在数据库术语中,序列是管理计数器字段的结构。 简单地说,当你需要一个始终增加的数字时,主要使用这些序列。 它支持两种类型 -

  • ORDERED - 每次指针调用.next()方法返回新值。
  • CACHED - 该序列将在每个节点上缓存N个项目。 调用每个项目使用.next(),当缓存包含多个项目时,这是首选项。

创建序列

序列通常用于自动增加一个id值。 OrientDB与其他SQL概念一样,它也会执行与RDBMS中的序列类似的操作。

以下语句是创建序列的基本语法。

CREATE SEQUENCE <sequence> TYPE <CACHED|ORDERED> [START <start>]  
[INCREMENT <increment>] [CACHE <cache>]

以下是有关上述语法中选项的详细信息。

  • <Sequence> - 序列的本地名称。
  • TYPE - 定义ORDERED或CACHED的序列类型。
  • START - 定义初始值。
  • INCREMENT - 定义每个.next方法调用的增量。
  • CACHE - 定义在用于缓存序列类型的情况下预先缓存的值的数量。

下面创建一个名为seqid的序列,它的编号是以1201开始。尝试以下查询以按顺序实现此示例。

CREATE SEQUENCE seqid START 1201

如果上述查询成功执行,将得到以下输出。

Sequence created successfully

尝试以下查询以使用序列seqid插入account表的id列的值。

INSERT INTO Account SET id = sequence('seqid').next()

如果上述查询成功执行,您将得到以下输出。

Insert 1 record(s) in 0.001000 sec(s)

修改序列

修改序列是用来改变序列属性的命令。 它将修改序列类型以外的所有序列选项。

以下语句是alter sequence命令的基本语法。

ALTER SEQUENCE <sequence> [START <start-point>] 
[INCREMENT <increment>] [CACHE <cache>]

以下是有关上述语法中选项的详细信息。

  • <Sequence> - 定义想要更改的序列。
  • START - 定义初始值。
  • INCREMENT - 定义每个.next方法调用的增量。
  • CACHE - 定义在用于缓存序列类型的事件中预先缓存的值的数量。

尝试以下查询,将名为seqid的序列的起始值从1201修改为1000

ALTER SEQUENCE seqid START 1000

执行上面示例代码,得到以下结果 -

Altered sequence successfully

删除序列

Drop sequence是用于删除序列的命令。

以下语句是删除序列的基本语法。

DROP SEQUENCE <sequence>

其中<sequence>定义想要删除的序列。

尝试以下查询以删除名为seqid的序列。

DROP SEQUENCE seqid

如果上述查询成功执行,您将得到以下输出。

Sequence dropped successfully