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

Neo4j - Eliminar una relación usando Cypher

Puede eliminar relaciones de la misma manera que elimina nodos:haciendo coincidir las relaciones que desea eliminar.

Puede eliminar una o varias relaciones de una sola vez. Incluso puede eliminar todas las relaciones en la base de datos.

Primero, para refrescar la memoria, estas son las relaciones que creamos anteriormente:

Eliminemos la relación de tipo LIBERADA .

Hay varias maneras en las que podríamos abordar esto. Veamos tres.

La siguiente declaración es bastante amplia:eliminará todas las relaciones de tipo RELEASED :

MATCH ()-[r:RELEASED]-() 
DELETE r

También podría ser más específico y escribir algo como esto:

MATCH (:Artist)-[r:RELEASED]-(:Album) 
DELETE r

La declaración anterior coincidirá con todos los Artist nodos que tienen un tipo de relación de LIBERADO con un Álbum nodo.

Podrías ser aún más específico y hacer algo como esto:

MATCH (:Artist {Name: "Strapping Young Lad"})-[r:RELEASED]-(:Album {Name: "Heavy as a Really Heavy Thing"}) 
DELETE r

Cualquiera de esas declaraciones resultará en la LIBERACIÓN relación que se elimina. El gráfico se verá así:

Eliminación de nodos con relaciones adjuntas

Los nodos no se pueden eliminar si todavía tienen relaciones adjuntas.

Si tratamos de ejecutar la siguiente sentencia:

MATCH (a:Artist {Name: "Strapping Young Lad"}) DELETE a

Obtendremos el siguiente error:

Esto se debe a que ese nodo tiene una relación conectada.

Una opción es eliminar todas las relaciones y luego eliminar el nodo.

Otra opción es usar el DETACH DELETE cláusula. El DETACH DELETE La cláusula le permite eliminar un nodo y todas las relaciones conectadas a él.

Entonces podemos cambiar la declaración anterior a esto:

MATCH (a:Artist {Name: "Strapping Young Lad"}) DETACH DELETE a

Ejecutar esa declaración dará como resultado el siguiente mensaje de éxito:

Eliminar toda la base de datos

Puedes tomar el DETACH DELETE un paso más allá y elimine toda la base de datos.

Simplemente elimine cualquier criterio de filtrado y eliminará todos los nodos y todas las relaciones.

Continúe y ejecute la siguiente instrucción:

MATCH (n) DETACH DELETE n

Ya no tenemos ningún dato en la base de datos... así que supongo que ese es el final del tutorial :)

Si está interesado en obtener más información sobre cómo trabajar con Neo4j, consulte la documentación oficial de Neo4j.