Neo4j - Criar Restrição Única
No banco de dados Neo4j, o comando CQL CREATE sempre cria um novo nó ou relacionamento, o que significa que mesmo que você use os mesmos valores, ele insere uma nova linha. De acordo com nossos requisitos de aplicativo para alguns nós ou relacionamentos, devemos evitar essa duplicação. Para isso, devemos usar algumas restrições de banco de dados para criar uma regra em uma ou mais propriedades de um nó ou relacionamento.
Como o SQL, o banco de dados Neo4j também oferece suporte à restrição UNIQUE nas propriedades do nó ou relacionamento. A restrição UNIQUE é usada para evitar registros duplicados e para impor a regra de integridade de dados.
Criar restrição UNIQUE
O Neo4j CQL fornece o comando "CREATE CONSTRAINT" para criar restrições exclusivas nas propriedades do nó ou relacionamento.
Sintaxe
A seguir está a sintaxe para criar uma restrição UNIQUE no Neo4j.
MATCH (root {name: "Dhawan"})
CREATE UNIQUE (root)-[:LOVES]-(someone)
RETURN someone
Exemplo
Antes de prosseguir com o exemplo, crie 4 nós conforme mostrado abaixo.
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"})
A seguir está um exemplo de Cypher Query para criar uma restrição ÚNICA no ID da propriedade usando Neo4j.
CREATE CONSTRAINT ON (n:player) ASSERT n.id IS UNIQUE
Para executar a consulta acima, siga as seguintes etapas -
Step 1- Abra o aplicativo de desktop Neo4j e inicie o servidor Neo4j. Abra o aplicativo de navegador integrado do Neo4j usando o URLhttp://localhost:7474/ como mostrado na imagem a seguir.
Step 2 - Copie e cole a consulta desejada no prompt de dólar e pressione o botão play (para executar a consulta) destacado na imagem a seguir.
Resultado
Ao executar, você obterá o seguinte resultado.
Verificação
Agora, tente adicionar outro nó com um valor de id redundante. Aqui, estamos tentando criar um nó com id002.
CREATE (Jadeja:player {id:002, name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
Se você executar esta consulta, receberá uma mensagem de erro, conforme mostrado na imagem a seguir.