sql >> データベース >  >> RDS >> Mysql

Neo4j-Cypherを使用してリレーションシップを削除する

    ノードを削除するのと同じ方法で、削除する関係を一致させることにより、関係を削除できます。

    1つまたは複数の関係を一度に削除できます。データベース内のすべての関係を削除することもできます。

    まず、記憶の復習として、以前に作成した関係を次に示します。

    タイプRELEASEDの関係を削除しましょう 。

    これについてはいくつかの方法があります。 3つ見てみましょう。

    次のステートメントは非常に広範です—タイプ RELEASEDのすべての関係を削除します :

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

    より具体的に、次のように書くこともできます:

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

    上記のステートメントは、すべての Artistに一致します 関係タイプがRELEASEDのノード アルバム付き ノード。

    さらに具体的にして、次のようなことを行うことができます:

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

    これらのステートメントのいずれかがRELEASEDになります 関係が削除されます。グラフは次のようになります:

    リレーションシップがアタッチされたノードの削除

    ノードにまだ関係が関連付けられている場合、ノードを削除することはできません。

    次のステートメントを実行しようとすると:

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

    次のエラーが発生します:

    これは、そのノードに接続された関係があるためです。

    1つのオプションは、すべての関係を削除してから、ノードを削除することです。

    もう1つのオプションは、DETACH DELETEを使用することです。 句。 DETACH DELETE 句を使用すると、ノードとそれに接続されているすべての関係を削除できます。

    したがって、上記のステートメントを次のように変更できます:

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

    そのステートメントを実行すると、次の成功メッセージが表示されます。

    データベース全体を削除する

    DETACH DELETEを取得できます さらに一歩進んで、データベース全体を削除します。

    フィルタリング基準を削除するだけで、すべてのノードとすべての関係が削除されます。

    先に進み、次のステートメントを実行します。

    MATCH (n) DETACH DELETE n

    データベースにデータがなくなったので、これでチュートリアルは終わりだと思います:)

    Neo4jの操作について詳しく知りたい場合は、Neo4jの公式ドキュメントを確認してください。


    1. SQLServerでのROLLBACKTRUNCATE

    2. Oracleの日付から文字列への変換

    3. プレフィックスで終わるフレーズを全文検索と一致させる

    4. MariaDBの使用