跳转至

DROP TAG

DROP TAG语句可以删除当前工作空间内所有点上的指定 Tag。

点可以有一个或多个 Tag。

  • 如果某个点只有一个 Tag,删除这个 Tag 后,用户就无法访问这个点,下次 Compaction 操作时会删除该点,但与该点相邻的边仍然存在——这会造成悬挂边。
  • 如果某个点有多个 Tag,删除其中一个 Tag,仍然可以访问这个点,但是无法访问已删除 Tag 所定义的所有属性。

删除 Tag 操作仅删除 Schema 数据,硬盘上的文件或目录不会立刻删除,而是在下一次 Compaction 操作时删除。

Compatibility

NebulaGraph master 中默认不支持插入无 Tag 的点。如需使用无 Tag 的点,在集群内所有 Graph 服务的配置文件(nebula-graphd.conf)中新增--graph_use_vertex_key=true;在所有 Storage 服务的配置文件(nebula-storaged.conf)中新增--use_vertex_key=true

前提条件

  • 登录的用户必须拥有对应权限才能执行DROP TAG语句。详情请参见内置角色权限
  • 确保 Tag 不包含任何索引,否则DROP TAG时会报冲突错误[ERROR (-1005)]: Conflict!。删除索引请参见 drop index

语法

DROP TAG [IF EXISTS] <tag_name>;
  • IF EXISTS:检测待删除的 Tag 是否存在,只有存在时,才会删除 Tag。
  • tag_name:指定要删除的 Tag 名称。一次只能删除一个 Tag。

示例

nebula> CREATE TAG IF NOT EXISTS test(p1 string, p2 int);
nebula> DROP TAG test;

最后更新: May 9, 2024