Neo4j - Créer une contrainte unique

Dans la base de données Neo4j, la commande CQL CREATE crée toujours un nouveau nœud ou une nouvelle relation, ce qui signifie que même si vous utilisez les mêmes valeurs, elle insère une nouvelle ligne. Conformément aux exigences de notre application pour certains nœuds ou relations, nous devons éviter cette duplication. Pour cela, nous devons utiliser certaines contraintes de base de données pour créer une règle sur une ou plusieurs propriétés d'un nœud ou d'une relation.

Comme SQL, la base de données Neo4j prend également en charge la contrainte UNIQUE sur les propriétés des nœuds ou des relations. La contrainte UNIQUE est utilisée pour éviter les enregistrements en double et pour appliquer la règle d'intégrité des données.

Créer une contrainte UNIQUE

Neo4j CQL fournit la commande "CREATE CONSTRAINT" pour créer des contraintes uniques sur les propriétés des nœuds ou des relations.

Syntaxe

Voici la syntaxe pour créer une contrainte UNIQUE dans Neo4j.

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

Exemple

Avant de continuer avec l'exemple, créez 4 nœuds comme indiqué ci-dessous.

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"})

Voici un exemple de requête de chiffrement pour créer une contrainte UNIQUE sur l'ID de propriété à l'aide de Neo4j.

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

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vérification

Maintenant, essayez d'ajouter un autre nœud avec une valeur d'identifiant redondante. Ici, nous essayons de créer un nœud avec id002.

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

Si vous exécutez cette requête, vous obtiendrez un message d'erreur comme indiqué dans la capture d'écran suivante.