laggingreflex
laggingreflex

Reputation: 34627

Multiple unrelated queries in Neo4j Cypher?

Does http://localhost:7474/browser/ not support multiple unrelated queries?

This code:

MATCH (a {cond:'1'}), (b {cond:'x'}) CREATE a-[:rel]->b
MATCH (a {cond:'2'}), (b {cond:'y'}) CREATE a-[:rel]->b
MATCH (a {cond:'3'}), (b {cond:'z'}) CREATE a-[:rel]->b

causes an error:

WITH is required between CREATE and MATCH

But since my queries aren't related, I don't think I shall need a WITH.

How do I do the above without having to enter it one-line-at-a-time?

Upvotes: 24

Views: 19742

Answers (4)

Vasyl Vaskivskyi
Vasyl Vaskivskyi

Reputation: 957

In recent releases developers added an option in Neo4j Browser to execute multiple queries.

Open Browser Settings and click on Enable multi statement query editor.

Then just put semicolon on the end of each query and throw them all in browser console.

Screenshot

Here is how it looks

Screenshot

Upvotes: 17

kefa
kefa

Reputation: 71

You can send multiple queries to Neo4j via the cypher-shell command line tool:

cypher-shell --format plain < query.txt

where query.txt contains multiple independent queries separated by semi-colons. This also works interactively once you have started cypher-shell.

Upvotes: 4

Michael Hunger
Michael Hunger

Reputation: 41676

As a work around you can do:

MATCH (a {cond:'1'}), (b {cond:'x'}) CREATE a-[:rel]->b
WITH 1 as dummy
MATCH (a {cond:'2'}), (b {cond:'y'}) CREATE a-[:rel]->b
WITH 1 as dummy
MATCH (a {cond:'3'}), (b {cond:'z'}) CREATE a-[:rel]->b

See also the import blog post: http://blog.neo4j.org/2014/01/importing-data-to-neo4j-spreadsheet-way.html

Upvotes: 20

Stefan Armbruster
Stefan Armbruster

Reputation: 39915

I'm not aware of a way to send multiple unrelated queries at once via Neo4j browser. However on REST level this is perfectly possible by using the transactional HTTP endpoint.

Upvotes: 3

Related Questions