序列是一个用于自动增量机制的概念,它在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