jsn*_*gam 5 sql list orientdb sql-update
我有一个带有EMBEDDEDSET/ EMBEDDEDLISTfield 的类的OrientDB数据库,每次我更改某些内容时都需要更新该字段,比如记录日志.
我正常使用insert:
insert into order set ..., logLikeField = "A new value"
Run Code Online (Sandbox Code Playgroud)
通过执行此操作,新值将替换旧值,我需要将其添加到列表中,但我无法在文档中找到如何执行此操作.
现在我走的列表并添加新的值,并替换旧列表(第一一select则update),但我不喜欢它,我需要用尽可能少的查询做.
顺便说一句,我正在使用Java(没有JDBC).
[编辑]
正如我在下面的答案中所建议的那样:
insert into order add logLikeField = "A new value"
Run Code Online (Sandbox Code Playgroud)
它在OrientDB Studio中运行良好,但是当我从程序中调用它时它什么也没做.
这是代码(语言西班牙语):
db.command(command("update ordenes set fecha = ?, numero = ?, producto = ? where @rid = " + orden.id)).execute(orden.fecha, orden.numero, orden.producto);
db.command(command("update ordenes add registro = ? where @rid = " + orden.id)).execute(registro);
Run Code Online (Sandbox Code Playgroud)
我想要一个单行解决方案,但只要它不是一个选择它是好的.
这是命令方法:
public OCommandSQL command(sql){
return new OCommandSQL(sql);
}
Run Code Online (Sandbox Code Playgroud)
第一个命令正确地完成了工作但是另一个命令我什么都没得到,甚至没有例外.
我的做法有什么问题?它可能是一个错误吗?
OrientDB 1.3.0 - Java 1.7.0 - Windows 7 64