В базе данных Neo4j команда CQL CREATE всегда создает новый узел или отношение, что означает, что, даже если вы используете те же значения, она вставляет новую строку. В соответствии с требованиями нашего приложения для некоторых узлов или отношений, мы должны избегать этого дублирования. Для этого мы должны использовать некоторые ограничения базы данных, чтобы создать правило для одного или нескольких свойств узла или отношения.
Как и SQL, база данных Neo4j также поддерживает уникальное ограничение на свойства узла или отношения. Уникальное ограничение используется, чтобы избежать дублирования записей и обеспечить соблюдение правила целостности данных.
Создать УНИКАЛЬНОЕ Ограничение
Neo4j CQL предоставляет команду «CREATE CONSTRAINT» для создания уникальных ограничений на свойства узла или отношения.
Синтаксис
Ниже приведен синтаксис для создания уникального ограничения в Neo4j.
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"})
Ниже приведен пример Cypher Query для создания уникального ограничения на идентификатор свойства с помощью Neo4j.
CREATE CONSTRAINT ON (n:player) ASSERT n.id IS UNIQUE
Для выполнения вышеуказанного запроса выполните следующие шаги:
Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.
Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.
Результат
Выполнив, вы получите следующий результат.
верификация
Теперь попробуйте добавить еще один узел с избыточным значением идентификатора. Здесь мы пытаемся создать узел с идентификатором 002 .
CREATE (Jadeja:player {id:002, name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
Если вы выполните этот запрос, вы получите сообщение об ошибке, как показано на следующем снимке экрана.