我试图使用以下查询删除整个子图:
match
(n:StartNode {id:'id1'})-[r*1..6]-(m)
foreach(rel in r|delete rel) with n, collect(distinct m) as del_nodes2
foreach(node in del_nodes2|delete node);
子图中的所有组件都已连接。起始节点确实存在。最大链长为6.但是,我收到以下错误:
javax.transaction.HeuristicRollbackException: Failed to commit transaction Transaction(6, owner:"qtp1905632138-213")[STATUS_NO_TRANSACTION,Resources=1], transaction rolled back ---> javax.transaction.xa.XAException
答案 0 :(得分:1)
2条建议:
MATCH
子句中指定关系方向性,否则您最终不仅会删除起始节点的后代,还会删除其所有祖先!此外,这可能是您的删除失败的原因 - 某些祖先节点可能具有您的查询不会尝试删除的其他关系。试试这个:
MATCH (:StartNode {id:'id1'})-[r*1..6]->(m)
FOREACH(rel in r | DELETE rel)
DELETE m;