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.