Neo4j-create-unique-constraint

提供:Dev Guides
移動先:案内検索

Neo4j-一意の制約を作成する

Neo4jデータベースでは、CQL CREATEコマンドは常に新しいノードまたはリレーションシップを作成します。つまり、同じ値を使用しても、新しい行が挿入されます。 一部のノードまたは関係のアプリケーション要件に従って、この重複を回避する必要があります。 このために、いくつかのデータベース制約を使用して、ノードまたは関係の1つ以上のプロパティにルールを作成する必要があります。

SQLと同様に、Neo4jデータベースはノードまたは関係のプロパティに対するUNIQUE制約もサポートしています。 UNIQUE制約は、レコードの重複を避け、データ整合性ルールを実施するために使用されます。

一意の制約を作成する

Neo4j CQLは、ノードまたは関係のプロパティに一意の制約を作成するための「CREATE CONSTRAINT」コマンドを提供します。

構文

Neo4jでUNIQUE制約を作成する構文は次のとおりです。

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

例に進む前に、以下に示すように4つのノードを作成します。

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

次に、Neo4jを使用してプロパティIDにUNIQUE制約を作成するサンプルサイファークエリを示します。

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

上記のクエリを実行するには、次の手順を実行します-

ステップ1 *-Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。 次のスクリーンショットに示すように、URL *http://localhost:7474/ を使用して、Neo4jの組み込みブラウザーアプリを開きます。

ブラウザアプリ

  • ステップ2 *-目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている(クエリを実行する)再生ボタンを押します。

ユニークな作成

結果

実行すると、次の結果が得られます。

制約の追加

検証

ここで、冗長ID値を持つ別のノードを追加してみてください。 ここでは、ID 002 のノードを作成しようとしています。

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

このクエリを実行すると、次のスクリーンショットに示すようなエラーメッセージが表示されます。

ノードラベルプレイ