OrientDB批处理命令在唯一的边和顶点上

时间:2018-04-12 16:14:26

标签: orientdb

假设我想创建一组唯一的边和顶点。

create vertex A set etc.

create vertex B set etc.

create edge AB, create edge AC, 

并且所有这些边和顶点都是唯一的 - 因此一些命令在它们是唯一的时候可能会失败。

如何批处理这些命令,以确保即使某些命令失败,也会运行所有命令?

1 个答案:

答案 0 :(得分:1)

我试过你的情况,我有一个带有name属性的Vertex类(唯一索引),你可以用不同的方式执行批处理命令:

  • <强>演播室

    begin
    LET a = create vertex User set name = 'John'
    LET b = create vertex User set name = 'Jane'
    LET c = create edge FriendOf from $a to $b
    commit retry 100
    return $c
    
  • Java API

    OrientGraph g=new OrientGraph(currentPath);
    String cmd = "begin\n";
    cmd += "let $user2 = UPDATE User SET user_id = 'userX' UPSERT RETURN AFTER @rid WHERE user_id = 'userX'\n";
    cmd += "let $service = UPDATE Service SET service = 'serviceX' UPSERT RETURN AFTER @rid WHERE service = 'serviceX'\n";
    cmd += "CREATE edge link FROM $user2 TO $service\n";
    cmd += "commit";
    g.command(new OCommandScript("sql", cmd)).execute();
    
  • <强>控制台

    使用您的代码创建一个.txt文件:

    connect remote:localhost/stack49801389 root root
    
    begin
    create vertex User set name = 'John'
    create vertex User set name = 'Jane'
    create edge FriendOf from $a to $b
    commit retry 100
    return $c
    

    然后通过控制台

  • 运行它

有关详细信息,请查看此link

希望有所帮助

此致