我有一个 Gridgain Ignite v8.8.29 的缓存集群。我其中有两个表 VOTE 和 VOTEDETAIL 都有相同的键列。在 VOTE 表中,名为“comment”的一列具有空值,而 VOTEDETAIL 表中的同一列包含值。我想使用 VOTEDETAIL 中匹配键列的注释列的值更新 VOTE 中注释列的空值。 Apache Ignite 有没有办法做到这一点?
我尝试了以下合并命令:
MERGE INTO master.VOTE(voteId,uuid,batchId,address,phone,name,email,decision,comment,createdon, active)(SELECT voteId,uuid,batchId,address,phone,name,email,decision,comment,createdon, active FROM master.VOTEDETAIL where comment is NOT NULL)
但是,此查询将使用“comment”值插入 VOTE 表中的记录,而不是更新现有记录中的 null。我认为 Ignite 不像其他数据库那样支持
Merge and When Matched
语句。在 Apache Ignite 中还有其他方法可以做到这一点吗?
MERGE 命令在幕后(有效)转换为键值
put
;它更像是更新插入而不是合并。
您也许可以使用 UPDATE 语句执行您想要的操作。或者,您可以使用 SELECT 语句查找记录并使用键值 API(可能是入口处理器)更新它们。