Apache AGEのグラフを一括で消したい

AGEでcreate_graph()したグラフは、ag_catalogスキーマのag_graphテーブルに格納されており、以下のように格納されている。

\d ag_graph
                Table "ag_catalog.ag_graph"
  Column   |     Type     | Collation | Nullable | Default 
-----------+--------------+-----------+----------+---------
 graphid   | oid          |           | not null | 
 name      | name         |           | not null | 
 namespace | regnamespace |           | not null | 
Indexes:
    "ag_graph_graphid_index" UNIQUE, btree (graphid)
    "ag_graph_name_index" UNIQUE, btree (name)
    "ag_graph_namespace_index" UNIQUE, btree (namespace)
Referenced by:
    TABLE "ag_label" CONSTRAINT "fk_graph_oid" FOREIGN KEY (graph) REFERENCES ag_graph(graphid)

で、これを一括削除するには、drop_graph()を実行する必要があるので、以下のようになる、と。

DO $$
    DECLARE
        nm_value TEXT;
    BEGIN
        FOR nm_value IN
            SELECT name FROM ag_graph
        LOOP
            EXECUTE  format('SELECT drop_graph(%L, true);', nm_value);
        END LOOP;
END $$;
タイトルとURLをコピーしました