这是我现在正在使用的查询:
INSERT INTO details SET name = "INITIALIZE",actionMap ={"1":12:1,"2":12:2};
Run Code Online (Sandbox Code Playgroud)
这里12:1,12:2是从另一个表摆脱.我面临很多问题的硬编码这些摆脱的价值.为了避免这个我想添加这样的查询
INSERT INTO details SET name = "INITIALIZE",actionMap ={"1":(select @rid from action where start is not null),"2":(select @rid from action where stop is not null)};
Run Code Online (Sandbox Code Playgroud)
我得到了这个例外:
com.orientechnologies.orient.core.exception.OValidationException:字段'details.actionMap'已声明为LINKMAP,但该值不是记录或记录ID
那么如何更改我的查询以帮助我的案例.
这确实可以使用批处理以更优雅的方式完成。
这只是为了创建你想要的对象
INSERT INTO details SET name = "INITIALIZE"
Run Code Online (Sandbox Code Playgroud)
我们将把它变成
let $inserted = INSERT INTO details SET name = "INITIALIZE"
Run Code Online (Sandbox Code Playgroud)
并添加您想要添加的边缘:
CREATE EDGE actionMap FROM $inserted TO (SELECT FROM action WHERE start is not null )
CREATE EDGE actionMap FROM $inserted TO (SELECT FROM action WHERE stop is not null )
Run Code Online (Sandbox Code Playgroud)
所以你必须运行的整个批次是
let $inserted = INSERT INTO details SET name = "INITIALIZE"
CREATE EDGE actionMap FROM $inserted TO (SELECT FROM action WHERE start is not null )
CREATE EDGE actionMap FROM $inserted TO (SELECT FROM action WHERE stop is not null )
Run Code Online (Sandbox Code Playgroud)
如果您对此还有任何疑问,请随时询问。
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |