我在本地创建了一个 neo4j 数据库并分配了一些索引和唯一约束。
这是:模式
Indexes
ON :Actor(social_id) ONLINE (for uniqueness constraint)
ON :Category(name) ONLINE (for uniqueness constraint)
Constraints
ON (actor:Actor) ASSERT actor.social_id IS UNIQUE
ON (category:Category) ASSERT category.name IS UNIQUE
另外我在我的java代码中做了一个createIfNotFound(),我首先做一个find,然后如果没有找到就创建。
尽管进行了这两项检查,但我仍然看到数据库中存在多个标签类别和相同名称的节点。
MATCH (n:Category) WHERE n.name='garden' RETURN n
name garden
name garden
name garden
name garden
Returned 4 rows in 49 ms.
我不确定我缺少什么,以及为什么不遵守唯一约束。