我在本地创建了一个neo4j数据库并分配了一些索引和唯一约束。
这是:schema
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然后创建if if not found。
尽管有这两项检查,我仍然会看到DB中存在多个Label类别和相同名称的节点。
MATCH (n:Category) WHERE n.name='garden' RETURN n
name garden
name garden
name garden
name garden
Returned 4 rows in 49 ms.
我不确定我错过了什么,为什么没有尊重唯一约束。