我只是在导入了大量节点后才意识到我创建了名为START
的关系,这是一个保留关键字。通过Cypher控制台查询数据库因此总是抱怨保留的关键字:
SyntaxException:reserved keyword“start n = node(0)match n< - [:START] -r 返回计数(r)“
我想到的唯一解决方法是使用不同的名称创建新的复制关系,然后删除旧的复制关系。
是否有一种简单的方法可以重命名所有这些关系或某种方式来逃避Cypher中的保留关键字?
答案 0 :(得分:21)
要进行相当于重命名的操作,您可以创建一个新的,并删除旧的,如下所示:
match (n1)-[old:`Start`]->(n2)
create (n1)-[new:StartDate]->(n2)
delete old
n.b。使用“Start”周围的反引号来逃避保留的关键字
答案 1 :(得分:4)
你是对的。您无法重命名已存在的关系。您必须run through all relationships,并行创建新的(包括所有属性),然后删除旧的。
您可能还想考虑使用反引号引用cypher查询中的保留字START
,并保持关系原样:
start n=node(0) match n<-[:`START`]-r return count(r)
答案 2 :(得分:2)
match (n1)-[old:`Start`]->(n2)
create (n1)-[new:StartDate {propName:old.propName, ...}]->(n2)
delete old