Neo4j - Crea vincoli unici

Nel database Neo4j, il comando CQL CREATE crea sempre un nuovo nodo o relazione, il che significa che anche se usi gli stessi valori, inserisce una nuova riga. In base ai requisiti dell'applicazione per alcuni nodi o relazioni, dobbiamo evitare questa duplicazione. Per questo, dovremmo utilizzare alcuni vincoli del database per creare una regola su una o più proprietà di un nodo o di una relazione.

Come SQL, il database Neo4j supporta anche il vincolo UNIQUE sulle proprietà del nodo o della relazione. Il vincolo UNIQUE viene utilizzato per evitare record duplicati e per applicare la regola di integrità dei dati.

Crea vincolo UNICO

Neo4j CQL fornisce il comando "CREATE CONSTRAINT" per creare vincoli univoci sulle proprietà del nodo o della relazione.

Sintassi

La seguente è la sintassi per creare un vincolo UNICO in Neo4j.

MATCH (root {name: "Dhawan"}) 
CREATE UNIQUE (root)-[:LOVES]-(someone) 
RETURN someone

Esempio

Prima di procedere con l'esempio, creare 4 nodi come mostrato di seguito.

CREATE(Dhawan:player{id:001, name: "shikar Dhawan", YOB: 1995, POB: "Delhi"}) 
CREATE(Jonathan:player {id:002, name: "Jonathan Trott", YOB: 1981, POB: "CapeTown"}) 
CREATE(Sangakkara:player {id:003, name: "Kumar Sangakkara", YOB: 1977, POB: "Matale"}) 
CREATE(Rohit:player {id:004, name: "Rohit Sharma", YOB: 1987, POB: "Nagpur"}) 
CREATE(Virat:player {id:005, name: "Virat Kohli", YOB: 1988, POB: "Delhi"})

Di seguito è riportato un esempio di Cypher Query per creare un vincolo UNICO sull'ID di proprietà utilizzando Neo4j.

CREATE CONSTRAINT ON (n:player) ASSERT n.id IS UNIQUE

Per eseguire la query di cui sopra, eseguire i seguenti passaggi:

Step 1- Apri l'app desktop Neo4j e avvia il server Neo4j. Apri l'app browser integrata di Neo4j utilizzando l'URLhttp://localhost:7474/ come mostrato nello screenshot seguente.

Step 2 - Copiare e incollare la query desiderata nel prompt del dollaro e premere il pulsante di riproduzione (per eseguire la query) evidenziato nella schermata seguente.

Risultato

All'esecuzione, otterrai il seguente risultato.

Verifica

Ora prova ad aggiungere un altro nodo con un valore id ridondante. Qui stiamo cercando di creare un nodo con id002.

CREATE (Jadeja:player {id:002, name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})

Se esegui questa query, riceverai un messaggio di errore come mostrato nello screenshot seguente.