sql >> Database >  >> RDS >> Mysql

Neo4j - Creëer een beperking met Cypher

Een beperking stelt u in staat beperkingen op te leggen voor de gegevens die kunnen worden ingevoerd voor een knooppunt of een relatie.

Beperkingen helpen de gegevensintegriteit af te dwingen, omdat ze voorkomen dat gebruikers de verkeerde soort gegevens invoeren. Als iemand probeert de verkeerde soort gegevens in te voeren wanneer een beperking is toegepast, ontvangt hij een foutmelding.

Beperkingstypen

In Neo4j kun je uniek . creëren beperkingen en bestaan ​​van eigendom beperkingen.

Uniqueness-beperking
Geeft aan dat de eigenschap een unieke waarde moet bevatten (d.w.z. geen twee knooppunten met een Artiest label kan een waarde delen voor de Naam eigendom.)
Bestaansbeperking van eigendom
Zorgt ervoor dat er een eigenschap bestaat voor alle knooppunten met een specifiek label of voor alle relaties met een specifiek type. Bestaansbeperkingen van eigenschappen zijn alleen beschikbaar in de Neo4j Enterprise Edition.

Maak een uniciteitsbeperking

Om een ​​uniciteitsbeperking in Neo4j te creëren, gebruikt u de CREATE CONSTRAINT ON uitspraak. Zoals dit:

CREATE CONSTRAINT ON (a:Artist) ASSERT a.Name IS UNIQUE

In het bovenstaande voorbeeld creëren we een uniekheid beperking op de Naam eigenschap van alle knooppunten met de Artiest label.

Wanneer de instructie slaagt, wordt het volgende bericht weergegeven:

Wanneer u een beperking maakt, maakt Neo4j een index. Cypher zal die index gebruiken voor zoekopdrachten, net als andere indexen.

Het is daarom niet nodig om een ​​aparte index te maken. Als je een beperking probeert te maken terwijl er al een index is, krijg je een foutmelding.

Bekijk de beperking

Beperkingen (en indexen) worden onderdeel van het (optionele) databaseschema.

We kunnen de beperking bekijken die we zojuist hebben gemaakt met behulp van het :schema opdracht. Zoals dit:

:schema

U ziet de nieuw gemaakte beperking, evenals de index die ermee is gemaakt. We kunnen ook de index zien die eerder is gemaakt:

Test de beperking

Je kunt testen of de beperking echt werkt door twee keer te proberen dezelfde artiest te maken.

Voer de volgende instructie twee keer uit:

CREATE (a:Artist {Name: "Joe Satriani"}) 
RETURN a

De eerste keer dat u het uitvoert, wordt het knooppunt gemaakt. De tweede keer dat u het uitvoert, zou u de volgende foutmelding moeten krijgen:

Bestaansbeperkingen van onroerend goed

Bestaansbeperkingen van eigenschappen kunnen worden gebruikt om ervoor te zorgen dat alle knooppunten met een bepaald label een bepaalde eigenschap hebben. U kunt bijvoorbeeld specificeren dat alle knooppunten die zijn gelabeld met Artiest moet een Naam . bevatten eigendom.

Gebruik de ASSERT exists(variable.propertyName) om een ​​eigenschapsvoorwaarde te maken. syntaxis.

Zoals dit:

CREATE CONSTRAINT ON (a.Artist) ASSERT exists(a.Name)

Houd er rekening mee dat beperkingen voor het bestaan ​​van eigenschappen alleen beschikbaar zijn in de Neo4j Enterprise Edition.


  1. Een rapport maken met de rapportwizard in Microsoft Access

  2. Algemene instructies voor het bouwen en implementeren van databaseservers

  3. Wat is het DATALENGTH()-equivalent in MySQL?

  4. Seconden veranderen in een tijdwaarde in MySQL