简体   繁体   English

如何在 OrientDB 中的一个 SQL 查询中插入顶点后立即创建边?

[英]How create edges right after vertex insertion in one SQL query in OrientDB?

I have created vertex class Person and edge class friends.我创建了顶点类 Person 和边类朋友。 After insertion in class Person the query result returns @rid and some kind of other data or properties etc.在类 Person 插入后,查询结果返回 @rid 和某种其他数据或属性等。

东方数据库工作室

and I want to use this @rid for creating edges between vertices.我想使用这个@rid 在顶点之间创建边。 I want to implement something like:我想实现类似的东西:

create edge friends 
from (insert into person (name) values("John")) 
to (insert into person (name) values("Ann"))

so that I should be able to create edge immediately in one query.这样我就可以在一个查询中立即创建边缘。

I am inserting batch data with prepared statement, that's why I can't get @rid after insertion, and because of that I want to make it in one query.我正在使用准备好的语句插入批处理数据,这就是为什么在插入后无法获得 @rid 的原因,因此我想在一个查询中生成它。 I suppose it would be faster as well.我想它也会更快。

How to do that?怎么做?

You can use batch scripts and LET statements:您可以使用批处理脚本和 LET 语句:

LET $alice = insert into person (name) values("Alice");
LET $bob = insert into person (name) values("Bob");
LET $charlie = insert into person (name) values("Charlie");
create edge friends from $alice to $bob;
create edge friends from $bob to $charlie;

If you do it from Studio, make sure you select the BATCH mode.如果从 Studio 执行此操作,请确保选择 BATCH 模式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM