【问题标题】:Neo4j node/relation inconsistenciesNeo4j 节点/关系不一致
【发布时间】:2017-01-19 10:46:25
【问题描述】:

当获取或尝试删除特定节点时,例如

MATCH (p) 
where ID(p)=79259223
OPTIONAL MATCH (p)-[r]-() 
//drops p's relations
DELETE r,p

我收到以下错误

在加载 Node[79259223] 的关系时,遇到了具有 startNode: 80312215 和 endNode: 83719851 的关系 [87331456],即既没有开始节点也没有结束节点作为我们正在为其加载关系的节点

我还运行了 ConsistencyChecker,导致出现大量不一致。但是,您如何解决这些不一致的问题?例如,我无法删除节点

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    这是一种可能“修复”出现此错误的方法。不幸的是,这是一种相当手动的方法,必须用于遇到相同问题的每个节点。

    在删除节点之前,可以尝试通过其原生的neo4j ID删除不一致的关系。例如:

    MATCH ()-[r]->()
    WHERE ID(r) = 87331456
    DELETE r;
    

    注意:在删除该关系之前,您应该先尝试查看它(例如,将 DELETE 替换为 RETURN)以了解您打算删除的内容。你可能想先做点别的事情,或者代替。

    如果该删除有效,则再次尝试删除该节点,如下所示:

    MATCH (p) 
    WHERE ID(p) = 79259223
    DETACH DELETE p;
    

    请注意,我使用DETACH DELETE 语法,它将尝试删除指定节点的所有关系。

    【讨论】:

    • 我试图通过 ID 删除关联,但我得到了同样的错误。最后,我刚开始使用一个新数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    相关资源
    最近更新 更多