如何在Neo4j中重命名关系?

如何在Neo4j中重命名关系?,neo4j,rename,relationship,keyword,cypher,Neo4j,Rename,Relationship,Keyword,Cypher,只有在导入大量节点后,我才意识到我已经创建了名为START的关系,这是一个保留关键字。因此,通过Cypher控制台查询数据库时,总是会抱怨保留关键字: SyntaxException:保留关键字“start n=node(0)match n您是对的。您不能重命名现有关系。您必须并行创建新关系(包括所有属性),然后删除旧关系 你也可以考虑引用保留词“代码>开始/代码>在你的带有回扣的CypER查询中,并保留它们之间的关系: start n=node(0) match n<-[:`START`

只有在导入大量节点后,我才意识到我已经创建了名为
START
的关系,这是一个保留关键字。因此,通过Cypher控制台查询数据库时,总是会抱怨保留关键字:


SyntaxException:保留关键字“start n=node(0)match n您是对的。您不能重命名现有关系。您必须并行创建新关系(包括所有属性),然后删除旧关系

你也可以考虑引用保留词“代码>开始/代码>在你的带有回扣的CypER查询中,并保留它们之间的关系:

start n=node(0) match n<-[:`START`]-r return count(r)

start n=node(0)match n要执行重命名的等效操作,您可以创建一个新节点并删除旧节点,如下所示:

match (n1)-[old:`Start`]->(n2)
create (n1)-[new:StartDate]->(n2)
delete old

n、 b.使用类似于“开始”的倒勾来转义保留关键字

Neo4j 2.x的最佳答案,还请注意,您可以将“创建”替换为“合并”“如果要避免再次执行时出现重复。此方法不会保留以前关系的属性。我希望对新添加的关系保留相同的关系ID。我怎么可能?不鼓励只回答代码问题。请点击并添加一些文字,总结您的代码如何解决问题,或者解释您的答案与之前的答案有何不同。
match (n1)-[old:`Start`]->(n2)
create (n1)-[new:StartDate {propName:old.propName, ...}]->(n2)
delete old