gpt4 book ai didi

neo4j - 从 Neo4j 中删除所有节点时出现 ConstraintViolationTransactionFailureException

转载 作者:行者123 更新时间:2023-12-01 10:32:24 24 4
gpt4 key购买 nike

当我试图从我的 Neo4j 图形数据库中删除所有节点时,我过去曾多次在较小的数据集上成功完成过,但我始终遇到 Error: undefined - undefined运行此查询后


MATCH (n) DETACH
DELETE n

我认为我试图一次删除的节点数量可能太大(>100000),所以我尝试了这个查询


MATCH (n)
OPTIONAL MATCH (n)-[r]-()
WITH n,r LIMIT 10000
DELETE n,r

以及它的许多变体,主要作用于我在这篇文章中读到的内容:Best way to delete all nodes and relationships in Cypher .都返回这个错误

org.neo4j.kernel.api.exceptions.ConstraintViolationTransactionFailureException: Cannot delete node<32769>, because it still has relationships. To delete this node, you must first delete its relationships.

每次,Neo4j 无法删除的节点都不同。有什么办法可以解决这个问题吗?

也许还值得注意,当我运行这个查询时拼命运行先前查询的变体


MATCH ()-[r]-()
OPTIONAL MATCH (n)-[r]-()
WITH r,n LIMIT 10000
DELETE r,n

我遇到了这个相当独特的错误

Java heap space

在控制台中,显示为 Neo.DatabaseError.General.UnknownError在横幅中。

最佳答案

您的查询编写方式存在的一个问题是每个 DELETE 一次仅尝试删除一个节点/关系对。如果任何节点具有多个关系,您将收到约束违反错误,因为要删除节点,您必须删除其所有关系(事先或同时)。

要删除 10000 个节点(及其所有关系),请使用此查询:

MATCH (n)
WITH n LIMIT 10000
DETACH DELETE n;

关于neo4j - 从 Neo4j 中删除所有节点时出现 ConstraintViolationTransactionFailureException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39644721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com