Skip to content

Commit

Permalink
delete tag (#918)
Browse files Browse the repository at this point in the history
  • Loading branch information
cooper-lzy committed Aug 27, 2021
1 parent 1b6d148 commit b271fd2
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 4 deletions.
6 changes: 3 additions & 3 deletions docs-2.0/3.ngql-guide/10.tag-statements/2.drop-tag.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# DROP TAG

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

点可以有一个或多个Tag。

- 如果某个点只有一个Tag,删除这个Tag后,用户就**无法访问**这个点,下次Compaction操作时会删除该点,但点上的边仍然存在。

- 如果某点有多个Tag,删除其中一个Tag,仍然可以访问这个点,但是**无法访问**已删除Tag定义的所有属性
- 如果某个点有多个Tag,删除其中一个Tag,仍然可以访问这个点,但是**无法访问**已删除Tag所定义的所有属性

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

Expand All @@ -22,7 +22,7 @@
DROP TAG [IF EXISTS] <tag_name>;
```

- `IF NOT EXISTS`:检测待删除的Tag是否存在,只有存在时,才会删除Tag。
- `IF EXISTS`:检测待删除的Tag是否存在,只有存在时,才会删除Tag。

- `tag_name`:指定要删除的Tag名称。一次只能删除一个Tag。

Expand Down
52 changes: 52 additions & 0 deletions docs-2.0/3.ngql-guide/10.tag-statements/6.delete-tag.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# DELETE TAG

`DELETE TAG`语句可以删除指定点上的指定Tag。

点可以有一个或多个Tag。

- 如果某个点只有一个Tag,删除这个点上的Tag后,用户就**无法访问**这个点,下次Compaction操作时会删除该点,但点上的边仍然存在。

- 如果某个点有多个Tag,删除其中一个Tag,仍然可以访问这个点,但是**无法访问**这个点上已删除Tag所定义的所有属性。

## 前提条件

登录的用户必须拥有对应权限才能执行`DELETE TAG`语句。详情请参见[内置角色权限](../../7.data-security/1.authentication/3.role-list.md)

## 语法

```ngql
DELETE TAG <tag_name_list> FROM <VID>;
```

- `tag_name_list`:指定Tag名称。多个Tag用英文逗号(,)分隔,也可以用`*`表示所有Tag。

- `VID`:指定要删除Tag的点ID。

## 示例

```ngql
nebula> CREATE TAG test1(p1 string, p2 int);
nebula> CREATE TAG test2(p3 string, p4 int);
nebula> INSERT VERTEX test1(p1, p2),test2(p3, p4) VALUES "test":("123", 1, "456", 2);
nebula> FETCH PROP ON * "test";
+------------------------------------------------------------+
| vertices_ |
+------------------------------------------------------------+
| ("test" :test2{p3: "456", p4: 2} :test1{p1: "123", p2: 1}) |
+------------------------------------------------------------+
nebula> DELETE TAG test1 FROM "test";
nebula> FETCH PROP ON * "test";
+-----------------------------------+
| vertices_ |
+-----------------------------------+
| ("test" :test2{p3: "456", p4: 2}) |
+-----------------------------------+
nebula> DELETE TAG * FROM "test";
nebula> FETCH PROP ON * "test";
+-----------+
| vertices_ |
+-----------+
+-----------+
```
6 changes: 6 additions & 0 deletions docs-2.0/3.ngql-guide/12.vertex-statements/4.delete-vertex.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@

`DELETE VERTEX`语句一次可以删除一个或多个点。用户可以结合管道符一起使用,详情请参见[管道符](../5.operators/4.pipe.md)

!!! note

- `DELETE VERTEX`是直接删除点和关联的边。

- `DELETE TAG`是删除指定点上的指定Tag。当点上只有一个Tag时,执行`DELETE TAG`会删除点,但是不会删除关联的边。

## 语法

```ngql
Expand Down
2 changes: 1 addition & 1 deletion docs-2.0/7.data-security/1.authentication/3.role-list.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Nebula Graph内置了多种角色,说明如下:
|Write user|Y|||||`CREATE USER``DROP USER``ALTER USER`|
|Write role|Y|Y||||`GRANT``REVOKE`|
|Read data|Y|Y|Y|Y|Y|`GO``SET``PIPE``MATCH``ASSIGNMENT``LOOKUP``YIELD``ORDER BY``FETCH VERTICES``Find``FETCH EDGES``FIND PATH``LIMIT``GROUP BY``RETURN`|
|Write data|Y|Y|Y|Y||`INSERT VERTEX``UPDATE VERTEX``INSERT EDGE``UPDATE EDGE``DELETE VERTEX``DELETE EDGES`|
|Write data|Y|Y|Y|Y||`INSERT VERTEX``UPDATE VERTEX``INSERT EDGE``UPDATE EDGE``DELETE VERTEX``DELETE EDGES``DELETE TAG`|
|Show operations|Y|Y|Y|Y|Y|`SHOW``CHANGE PASSWORD`|

>**注意**
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ nav:
- ALTER TAG: 3.ngql-guide/10.tag-statements/3.alter-tag.md
- SHOW TAGS: 3.ngql-guide/10.tag-statements/4.show-tags.md
- DESCRIBE TAG: 3.ngql-guide/10.tag-statements/5.describe-tag.md
- DELETE TAG: 3.ngql-guide/10.tag-statements/6.delete-tag.md
- Edge type语句:
- CREATE EDGE: 3.ngql-guide/11.edge-type-statements/1.create-edge.md
- DROP EDGE: 3.ngql-guide/11.edge-type-statements/2.drop-edge.md
Expand Down

0 comments on commit b271fd2

Please sign in to comment.