我對一個.CSV文件運行apoc.create.node。即使一個或多個節點由於重複鍵而失敗,我也需要創建可創建的節點。有沒有辦法調用apoc.create.node,使其不會因爲重複鍵而創建一個或多個節點時失敗?
我運行此:
CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","}) YIELD map CALL apoc.create.node([map.NodeType], {Key:map.Key, AttributeName:map.AttributeName, TableName:map.TableName, SchemaName:map.SchemaName, DataType:map.DataType, PreviousKey:map.PreviousKey}) yield node return count(*)
,我得到這個
Neo4jUtils.ExecActionQuery().execute(): Failed to invoke procedure `apoc.create.node`: Caused by: org.neo4j.graphdb.ConstraintViolationException: Node(357) already exists with label `SubNode` and property `Key` = 'queryprocessingtest.ttablea.testDateTime'
.csv文件看起來像這樣
NodeType,Key,SchemaName,TableName,AttributeName,DataType,PreviousKey
RootNode,queryprocessingtest.q01.testDateTimeX,queryprocessingtest,q01,testDateTime,datetime,
SubNode,queryprocessingtest.ttablea.testDateTime,queryprocessingtest,ttablea,testDateTime,datetime,queryprocessingtest.q01.testDateTime
不知道可以在apoc.load.csv做,但你絕對可以做,如果你使用「普通」 LOAD CSV。 –
@TomGeudens是的,但如果我這樣做,那麼我不能這樣做:https://stackoverflow.com/questions/45166907/how-to-use-a-csv-field-to-define-the-node-它是一個catch-22。 :) – nicomp