не может выполнять скрипты через cypher-shell - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь выполнить эти запросы в среде оболочки Cypher:

LOAD CSV WITH HEADERS FROM 'file:///names.csv' AS row
WITH row.Fname AS first, row.Lname AS last
MERGE (p:la {last: last})
MERGE (o:fi {first: first})
MERGE (c:central {name: "central node"})
MERGE (c)-[r:CONTAINS {first:first}]->(o)-[rel:CONTAINS {first: first}]->(p)
RETURN count(o)

Я сохранил эти запросы в файле с именем "cypher.ex1" и использую эту команду для его выполнения. :

neo4j@neo4j> :source cypher.ex1

но ничего не происходит. Я добавил ";" до конца всех запросов, как это:

LOAD CSV WITH HEADERS FROM 'file:///names.csv' AS row;

WITH row.Fname AS first, row.Lname AS last;

MERGE (p:la {last: last});

MERGE (o:fi {first: first});

MERGE (c:central {name: "central node"});

MERGE (c)-[r:CONTAINS {first:first}]->(o)-[rel:CONTAINS {first: first}]->(p);

RETURN count(o);

Я получаю эту ошибку:

Query cannot conclude with LOAD CSV (must be RETURN or an update clause) (line 2, column 60 (offset: 60))
"LOAD CSV WITH HEADERS FROM 'file:///subdomainIP.csv' AS row;"

Что не так?

1 Ответ

1 голос
/ 15 февраля 2020

Вы должны использовать точку с запятой только в конце оператора Cypher , а не в конце каждого предложения.

У оператора Cypher обычно есть предложение RETURN в конце , но он также может заканчиваться предложением, которое записывает в БД (например, предложение CREATE), если ничего не нужно возвращать.

В вашем конкретном файле вы действительно имеете только один Оператор Cypher, поэтому удалите все точки с запятой, кроме последней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...