在'DELETE VERTEX v;`之后如何重置RecordId?

时间:2016-02-17 21:27:30

标签: orientdb database nosql

执行DELETE VERTEX v;删除oriendb数据库中的所有记录后,如何重置RecordId(@rid)以重新开始?

我想在删除所有记录后再运行测试我再次播种记录;我测试了特定的记录#13:3但是在拆除后它会改变。当db再次播种时,它不是#13:3。

1 个答案:

答案 0 :(得分:3)

我创建了这个简单的结构来试试你的情况:

create property V.id integer

create vertex V set id = 1
create vertex V set id = 2
create vertex V set id = 3
create vertex V set id = 4
create vertex V set id = 5

现在V级有这个rid和记录:

select from V

----+----+------+----
#   |@RID|@CLASS|id
----+----+------+----
0   |#9:0|V     |1
1   |#9:1|V     |2
2   |#9:2|V     |3
3   |#9:3|V     |4
4   |#9:4|V     |5
----+----+------+----

但是如果执行命令

truncate class V unsafe

Truncated 5 record(s) in 0,016000 sec(s).

将删除V类中的所有记录(而不是手动删除它们),@rids将被重置。现在,如果执行新的create vertex V set id = 1命令,@rid #9:0将重新分配给第一个重新插入的记录。以下是重新插入的示例:

create vertex V set id = 1

Created vertex 'V#9:0{id:1} v1' in 0,015000 sec(s).

现在,如果您查询V类,您会看到重新分配的@rid #9:0

select from V

----+----+------+----
#   |@RID|@CLASS|id
----+----+------+----
0   |#9:0|V     |1
----+----+------+----

希望有所帮助