postgresql Apache AGE -如何正确删除标签表?

t0ybt7op  于 2023-02-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(156)

在AGE的源代码中,label_commands.c文件中有一个函数,叫做drop_label,我想它会删除包含标签名称的表,但是,当我删除标签中唯一的顶点时,它的表仍然会出现在ag_catalog.ag_label(它存储了图形中所有可用的标签)。
以下是从demo."Comic"中删除唯一顶点之前的ag_catalog.ag_label表:

demo=# SELECT * FROM ag_catalog.ag_label;
       name       | graph | id | kind |       relation        |        seq_name
------------------+-------+----+------+-----------------------+-------------------------
 _ag_label_vertex | 16940 |  1 | v    | demo._ag_label_vertex | _ag_label_vertex_id_seq
 _ag_label_edge   | 16940 |  2 | e    | demo._ag_label_edge   | _ag_label_edge_id_seq
 Person           | 16940 |  3 | v    | demo."Person"         | Person_id_seq
 Book             | 16940 |  4 | v    | demo."Book"           | Book_id_seq
 Comic            | 16940 |  5 | v    | demo."Comic"          | Comic_id_seq
 Author           | 16940 |  6 | v    | demo."Author"         | Author_id_seq
 AUTHOR_OF        | 16940 |  7 | e    | demo."AUTHOR_OF"      | AUTHOR_OF_id_seq
 Store            | 16940 |  8 | v    | demo."Store"          | Store_id_seq
(8 rows)

删除顶点:

demo=# SELECT * FROM cypher('demo', $$
demo$# MATCH (v:Comic)
demo$# DETACH DELETE v
demo$# $$) as (v agtype);

随后显示demo."Comic"的内容:

demo=# SELECT * FROM demo."Comic";
 id | properties
----+------------
(0 rows)

既然这个标签的所有顶点都被删除了,这个标签是不是也应该被删除,甚至不显示这个表?如果不是,我怎么用密码命令删除这个标签?

q3qa4bjr

q3qa4bjr1#

您可以使用拖放标签功能。

SELECT drop_label('graph_name','label_name');

请注意,这不是一个密码命令,而是一个特定于AGE的函数。

相关问题