跳转至

DROP TAG

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

点可以有一个或多个Tag。

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

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

前提条件

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

语法

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

示例

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

Note

nGQL中没有移除指定点的某个Tag的语句。

  • 在openCypher中,可以使用REMOVE v:LABEL语句来移除该点v的TagLABLE
  • 在nGQL中,通过CREATE TAGINSERT VERTEX语句后,可以为该点增加一个TAG;但是没有任何办法移除这个点的TAG

建议在schema中增加一个字段来标识软移除,例如为每个TAG的schema增加一个字段removed


最后更新: June 23, 2021
Back to top