如果同时运行2个查询,则merge正在重复

时间:2018-05-17 11:08:19

标签: neo4j cypher

MERGE (n:Label {
  value: $value
})
ON CREATE SET
  n.another_value = $another_value,
  n.created = timestamp()
RETURN id(n);

如果我同时运行此查询,则会收到2个相等的节点。 我只需要一个。我做错了什么?

1 个答案:

答案 0 :(得分:0)

neo4j中有一个错误已经修复了一段时间。引用this knowledge base article的最后一部分:

  

注意Neo4j< 3.0.9 for 3.0.x版本,< 3.1.2 for 3.1.x版本

     

阻止了受影响版本的成本计划程序中的错误   MERGE上的双重检查锁定。这允许竞争条件   可能导致并发MERGE创建重复模式   以前引起的操作或其他写操作   不存在的模式存在。

     

我们建议您升级到包含此错误修复的版本。