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"})
このクエリを実行すると、次のスクリーンショットに示すようなエラーメッセージが表示されます。