sql >> Database >  >> RDS >> Mysql

Neo4j - Een relatie verwijderen met Cypher

U kunt relaties op dezelfde manier verwijderen als knooppunten - door de relatie(s) die u wilt verwijderen te matchen.

U kunt één of meerdere relaties in één keer verwijderen. U kunt zelfs alle relaties in de database verwijderen.

Ten eerste, als geheugenopfrissing, hier zijn de relaties die we eerder hebben gemaakt:

Laten we de relatie van het type RELEASED verwijderen .

Er zijn verschillende manieren waarop we dit kunnen aanpakken. Laten we er drie bekijken.

De volgende verklaring is vrij breed — het verwijdert alle relaties van het type RELEASED :

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

Je zou ook specifieker kunnen zijn en zoiets als dit schrijven:

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

De bovenstaande verklaring komt overeen met alle Artiesten knooppunten met het relatietype RELEASED met een Album knooppunt.

Je zou nog specifieker kunnen zijn en zoiets als dit doen:

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

Elk van deze uitspraken zal resulteren in de RELEASED relatie wordt verwijderd. De grafiek ziet er als volgt uit:

Knooppunten met bijgevoegde relaties verwijderen

Knooppunten kunnen niet worden verwijderd als er nog relaties aan zijn gekoppeld.

Als we het volgende statement proberen uit te voeren:

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

We krijgen de volgende foutmelding:

Dit komt omdat die knoop een relatie heeft.

Een optie is om alle relaties te verwijderen en vervolgens het knooppunt te verwijderen.

Een andere optie is om de DETACH DELETE . te gebruiken clausule. De DETACH DELETE clausule laat je een knoop en alle relaties die ermee verbonden zijn verwijderen.

Dus we kunnen de bovenstaande verklaring in dit veranderen:

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

Het uitvoeren van die instructie zal resulteren in het volgende succesbericht:

De hele database verwijderen

U kunt de DETACH DELETE . nemen een stap verder en verwijder de hele database.

Verwijder eenvoudig alle filtercriteria en het zal alle knooppunten en alle relaties verwijderen.

Ga je gang en voer de volgende instructie uit:

MATCH (n) DETACH DELETE n

We hebben geen gegevens meer in de database... dus ik denk dat dat het einde van de tutorial is :)

Als je meer wilt weten over het werken met Neo4j, bekijk dan de officiële Neo4j-documentatie.


  1. MySQL 5.6 EOL-aankondiging

  2. Functie om het aantal weekdagen tussen twee datums te krijgen, exclusief feestdagen

  3. Hoe tel je het aantal keren dat een bepaalde substring in een SQL-varchar voorkomt?

  4. SQL-referentie voor beginners