我试图在Neo4j中运行下面的密码查询(3次合并声明)
MERGE (paymentinstrument{SENDER_CREDITCARD:'123444'})-[rPAYMENTINSTRUMENT:PROFILECHANGE_PI{}]->( profilechange )
ON CREATE SET rPAYMENTINSTRUMENT.CREATETIMESTAMP = toInt('1413911269726')
ON MATCH SET rPAYMENTINSTRUMENT.UPDATETIMESTAMP = toInt('1413911269726')
MERGE (profilechange{PROFILECHANGEIDENTIFIER:'ABCD'})-[rPROFILECHANGEDEVICE:HAS_DEVICE{}]->( device )
ON CREATE SET rPROFILECHANGEDEVICE.CREATETIMESTAMP = toInt('1413911269726')
ON MATCH SET rPROFILECHANGEDEVICE.UPDATETIMESTAMP = toInt('1413911269726')
MERGE (profilechange{PROFILECHANGEIDENTIFIER:'ABCD'})-[rPROFILECHANGEIPADDRESS:HAS_IP{}]->( ipaddress )
ON CREATE SET rPROFILECHANGEIPADDRESS.CREATETIMESTAMP = toInt('1413911269726')
ON MATCH SET rPROFILECHANGEIPADDRESS.UPDATETIMESTAMP = toInt('1413911269726')
遇到以下错误
无法在此处创建带有标签或属性的节点
profilechange
。该 变量已在此上下文中声明
是否有人对此问题有任何想法或解决方法?谢谢
答案 0 :(得分:1)
你有两个合并开头 MERGE(profilechange {PROFILECHANGEIDENTIFIER:'ABCD'}) 所以,它就像你定义了两个同名的引用
第二次使用,应该是
MERGE (profilechange)--
此外,在容易出错的情况下,语法很糟糕。
在“学习Neo4j”中,作者:)建议使用这种语法
(reference:Label{key:'value'})-[r2:RELATIONNAME]->(reference2:Label{you:'got it'})