sql >> Databáze >  >> RDS >> Mysql

Neo4j - Vytvořte omezení pomocí Cypher

omezení umožňuje umístit omezení na data, která lze zadat proti uzlu nebo vztahu.

Omezení pomáhají zajistit integritu dat, protože zabraňují uživatelům zadávat nesprávný druh dat. Pokud se někdo pokusí zadat nesprávný druh dat, když bylo aplikováno omezení, zobrazí se mu chybová zpráva.

Typy omezení

V Neo4j můžete vytvořit jedinečnost omezení a existence majetku omezení.

Omezení jedinečnosti
Udává, že vlastnost musí obsahovat jedinečnou hodnotu (tj. žádné dva uzly s Umělcem štítek může sdílet hodnotu pro Název vlastnost.)
Omezení existence vlastnosti
Zajišťuje, že vlastnost existuje pro všechny uzly se specifickým štítkem nebo pro všechny vztahy s určitým typem. Omezení existence vlastnosti jsou dostupná pouze v Neo4j Enterprise Edition.

Vytvořte omezení jedinečnosti

Chcete-li vytvořit omezení jedinečnosti v Neo4j, použijte CREATE CONSTRAINT ON prohlášení. Takhle:

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

Ve výše uvedeném příkladu vytvoříme jedinečnost omezení na Název vlastnost všech uzlů s Artist označení.

Když je příkaz úspěšný, zobrazí se následující zpráva:

Když vytvoříte omezení, Neo4j vytvoří index. Cypher použije tento index pro vyhledávání stejně jako ostatní indexy.

Není tedy potřeba vytvářet samostatný index. Ve skutečnosti, pokud se pokusíte vytvořit omezení, když již existuje index, dostanete chybu.

Zobrazit omezení

Omezení (a indexy) se stávají součástí (volitelného) databázového schématu.

Omezení, které jsme právě vytvořili, můžeme zobrazit pomocí :schema příkaz. Takhle:

:schema

Uvidíte nově vytvořené omezení a také index, který byl s ním vytvořen. Můžeme také vidět index, který byl vytvořen dříve:

Otestujte omezení

Můžete otestovat, že omezení skutečně funguje, pokusem o vytvoření stejného umělce dvakrát.

Spusťte dvakrát následující příkaz:

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

Při prvním spuštění se uzel vytvoří. Při druhém spuštění by se měla zobrazit následující chybová zpráva:

Omezení existence vlastnosti

Omezení existence vlastnosti lze použít k zajištění, aby všechny uzly s určitým štítkem měly určitou vlastnost. Můžete například určit, že všechny uzly jsou označeny Artist musí obsahovat Název vlastnost.

Chcete-li vytvořit omezení existence vlastnosti, použijte ASSERT exists(variable.propertyName) syntaxe.

Takhle:

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

Všimněte si, že omezení existence vlastnosti jsou dostupná pouze v Neo4j Enterprise Edition.


  1. Použijte TYPE_ID() k získání ID datového typu na serveru SQL Server

  2. SQL:klauzule IF v klauzuli WHERE

  3. Jak nasadit Percona XtraDB Cluster 8 pro vysokou dostupnost

  4. Nejlepší skupiny na Facebooku pro Analytics, Big Data, Data Mining, Hadoop, NoSQL, Data Science