使用唯一约束批量插入neo4j

0s7z1bwu  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(227)

我正在尝试将一些数据填充到neo4j数据库中。由于节点和关系的数量很大,我使用了本指南中描述的批量插入:
create-a-graph-database-in-neo4j-using-python
我的Cypher语句如下所示:

UNWIND $rows AS row
MERGE (:Term {name: row.name, accession: row.accession, definition: row.definition})
RETURN count(*) as total

因为我使用的是唯一约束,如果已经存在一个具有相同访问权限的节点

CREATE CONSTRAINT accession on (n:Term) assert n.accession is unique

合并失败,并出现以下错误:

{message: Node(2749) already exists with label `Term` and property `accession` = 'UO:0000000'}

有没有办法批量创建节点,除非当前节点已经存在,所以我只能更新一些属性,在这种情况下,除了accession属性之外的所有属性。
非常感谢你的帮助

ffscu2ro

ffscu2ro1#

我想我通过使用简单的SET子句设置属性解决了这个问题:

UNWIND $rows AS row
        MERGE (t:Term {accession: row.accession})
        SET t.name = row.name
        SET t.definition = row.definition
        SET t.accession = row.accession
        RETURN count(*) as total

相关问题