2017-08-03 238 views
2

我正在導入從關係數據庫導出的.CSV文件。導入過程很順利,但是當我嘗試在創建的節點之間創建關係時,使用其分配的標籤,它正在爲關係創建新節點,而不是使用現有標籤。我已經對我的頭撞了3天 - 有什麼想法?neo4j導入CSV與關係

代碼:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///seshatdata/sellable_unit_features.csv" AS line 
WITH line, SPLIT(line.ship_dt, '-') AS date 

CREATE (sellableunit:SellableUnit {sellable_unit_id: line.sellable_unit_id, sellable_unit_nm: line.sellable_unit_nm, sellable_unit_version_id: line.sellable_unit_version_id}) 
MERGE (feature:Feature {Feature_id:line.feature_id, feature_nm: line.feature_nm}) 

CREATE (SellableUnit)-[r:CONTAINS]->(Feature) 

SET r.start_year = TOINT(date[0]); 

顯然它是這裏的罪魁禍首行CREATE (SellableUnit)-[r:CONTAINS]->(Feature) - 我只是不知道是什麼原因。

回答

1

您的Cypher查詢有錯字錯誤。 Cypher對於variable declarations區分大小寫。

變量名稱是區分大小寫的,可以包含下劃線和 字母數字字符(A-Z,0-9),但必須以一個 字母開頭。如果需要其他字符,你可以引用變量 使用反引號(')簽署

試試:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///seshatdata/sellable_unit_features.csv" AS line 
WITH line, SPLIT(line.ship_dt, '-') AS date 

CREATE (sellableunit:SellableUnit {sellable_unit_id: line.sellable_unit_id, sellable_unit_nm: line.sellable_unit_nm, sellable_unit_version_id: line.sellable_unit_version_id}) 
MERGE (feature:Feature {Feature_id:line.feature_id, feature_nm: line.feature_nm}) 

CREATE (sellableUnit)-[r:CONTAINS]->(feature) 

SET r.start_year = TOINT(date[0]); 

你的存儲節點到一個名爲sellableUnit(小寫字母S)可變的,但使用在CREATE聲明中稱爲SellableUnit(大寫字母S)的變量。 feature也一樣。

+0

有時你只是太接近問題才能看到它 - 謝謝布魯諾! –

+0

是的,你是對的! :) 不用謝! –