sql >> Base de Datos >  >> RDS >> Mysql

Neo4j - Crear una restricción usando Cypher

Una restricción le permite colocar restricciones sobre los datos que se pueden ingresar en un nodo o una relación.

Las restricciones ayudan a reforzar la integridad de los datos, ya que evitan que los usuarios ingresen el tipo de datos incorrecto. Si alguien intenta ingresar el tipo de datos incorrecto cuando se ha aplicado una restricción, recibirá un mensaje de error.

Tipos de restricciones

En Neo4j, puede crear singularidad restricciones y existencia de propiedad restricciones

Restricción de unicidad
Especifica que la propiedad debe contener un valor único (es decir, no hay dos nodos con un Artista la etiqueta puede compartir un valor para el Nombre propiedad.)
Restricción de existencia de propiedad
Asegura que exista una propiedad para todos los nodos con una etiqueta específica o para todas las relaciones con un tipo específico. Las restricciones de existencia de propiedad solo están disponibles en Neo4j Enterprise Edition.

Crear una restricción de unicidad

Para crear una restricción de unicidad en Neo4j, use CREATE CONSTRAINT ON declaración. Así:

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

En el ejemplo anterior, creamos una singularidad restricción en el Nombre propiedad de todos los nodos con el Artista etiqueta.

Cuando la declaración tiene éxito, se muestra el siguiente mensaje:

Cuando crea una restricción, Neo4j creará un índice. Cypher usará ese índice para búsquedas al igual que otros índices.

Por lo tanto, no hay necesidad de crear un índice separado. De hecho, si intenta crear una restricción cuando ya existe un índice, obtendrá un error.

Ver la restricción

Las restricciones (y los índices) pasan a formar parte del esquema de la base de datos (opcional).

Podemos ver la restricción que acabamos de crear usando :schema dominio. Así:

:schema

Verá la restricción recién creada, así como el índice que se creó con ella. También podemos ver el índice que se creó anteriormente:

Probar la restricción

Puede probar que la restricción realmente funciona intentando crear el mismo artista dos veces.

Ejecute la siguiente instrucción dos veces:

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

La primera vez que lo ejecute, se creará el nodo. La segunda vez que lo ejecute, debería recibir el siguiente mensaje de error:

Restricciones de existencia de propiedad

Las restricciones de existencia de propiedad se pueden usar para garantizar que todos los nodos con una etiqueta determinada tengan una propiedad determinada. Por ejemplo, podría especificar que todos los nodos etiquetados con Artista debe contener un Nombre propiedad.

Para crear una restricción de existencia de propiedad, utilice ASSERT exists(variable.propertyName) sintaxis.

Así:

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

Tenga en cuenta que las restricciones de existencia de propiedades solo están disponibles en Neo4j Enterprise Edition.