重命名现有的边缘关系?

时间:2014-10-07 12:50:44

标签: orientdb

有没有一种简单的方法来更新所有类型的现有边缘关系的名称?

alter class EDGE_NAME name NEW_EDGE_NAME

更新基本边缘类的名称,但不影响任何现有关系。

即:

create class Person extends V
create class Car extends V
create class OWNS extends E

create vertex Person set name="Bob"
create vertex Car set name="Jeep"

create edge OWNS from (select from Person where name="Bob") to (select from Car where name="Jeep")
alter class OWNS name DRIVES

除了删除旧的边缘类型并创建新的边缘类型之外什么都不做,使现有的关系不受影响(Bob仍然是OWNS的吉普车,但OWNS不存在)

如果存在数千种这种关系,我们应该怎么做?

1 个答案:

答案 0 :(得分:3)

您应该使用以下命令重命名属性,这些命令会复制到新名称,并为进出方向删除以前的名称:

UPDATE V SET out_DRIVES = out_OWNS where out_OWNS is not null
UPDATE V SET in_DRIVES = in_OWNS where in_OWNS is not null
UPDATE V REMOVE out_OWNS where out_OWNS is not null
UPDATE V REMOVE in_OWNS where in_OWNS is not null