ALTER PROPERTY GRAPH — 更改 SQL 属性图的定义
ALTER PROPERTY GRAPHnameADD [ {VERTEX|NODE} TABLES (vertex_table_definition[, ...] ) ] [ {EDGE|RELATIONSHIP} TABLES (edge_table_definition[, ...] ) ] ALTER PROPERTY GRAPHnameDROP {VERTEX|NODE} TABLES (vertex_table_alias[, ...] ) [ CASCADE | RESTRICT ] ALTER PROPERTY GRAPHnameDROP {EDGE|RELATIONSHIP} TABLES (edge_table_alias[, ...] ) [ CASCADE | RESTRICT ] ALTER PROPERTY GRAPHnameALTER {VERTEX|NODE|EDGE|RELATIONSHIP} TABLEelement_table_alias{ ADD LABELlabel_name[ NO PROPERTIES | PROPERTIES ALL COLUMNS | PROPERTIES ( {expression[ ASproperty_name] } [, ...] ) ] } [ ... ] ALTER PROPERTY GRAPHnameALTER {VERTEX|NODE|EDGE|RELATIONSHIP} TABLEelement_table_aliasDROP LABELlabel_name[ CASCADE | RESTRICT ] ALTER PROPERTY GRAPHnameALTER {VERTEX|NODE|EDGE|RELATIONSHIP} TABLEelement_table_aliasALTER LABELlabel_nameADD PROPERTIES ( {expression[ ASproperty_name] } [, ...] ) ALTER PROPERTY GRAPHnameALTER {VERTEX|NODE|EDGE|RELATIONSHIP} TABLEelement_table_aliasALTER LABELlabel_nameDROP PROPERTIES (property_name[, ...] ) [ CASCADE | RESTRICT ] ALTER PROPERTY GRAPHnameOWNER TO {new_owner| CURRENT_USER | SESSION_USER } ALTER PROPERTY GRAPHnameRENAME TOnew_nameALTER PROPERTY GRAPH [ IF EXISTS ]nameSET SCHEMAnew_schema
ALTER PROPERTY GRAPH 用于更改现有属性图的定义。它有几种子形式:
ADD {VERTEX|NODE|EDGE|RELATIONSHIP} TABLES #这种形式会向属性图中添加新的顶点表或边表,语法与 CREATE PROPERTY GRAPH 相同。
DROP {VERTEX|NODE|EDGE|RELATIONSHIP} TABLES #这种形式会从属性图中移除顶点表或边表。(这里只移除了表与图之间的关联,表本身不会被删除。)
ALTER {VERTEX|NODE|EDGE|RELATIONSHIP} TABLE ... ADD LABEL #这种形式会向现有顶点表或边表添加一个新标签,语法与 CREATE PROPERTY GRAPH 相同。
ALTER {VERTEX|NODE|EDGE|RELATIONSHIP} TABLE ... DROP LABEL #这种形式会从现有顶点表或边表中移除一个标签。
ALTER {VERTEX|NODE|EDGE|RELATIONSHIP} TABLE ... ALTER LABEL ... ADD PROPERTIES #这种形式会向现有顶点表或边表上已有的标签添加新的属性。
ALTER {VERTEX|NODE|EDGE|RELATIONSHIP} TABLE ... ALTER LABEL ... DROP PROPERTIES #这种形式会从现有顶点表或边表上已有的标签移除属性。
OWNER #这种形式会把属性图的所有者更改为指定用户。
RENAME #这种形式会更改属性图的名称。
SET SCHEMA #这种形式会把属性图移动到另一个模式中。
使用 ALTER PROPERTY GRAPH 时,你必须是该属性图的所有者。要更改属性图的模式,你还必须对新模式拥有 CREATE 权限。要更改所有者,你必须能够使用 SET ROLE 切换到新的所有者角色,而且该角色必须对属性图所在模式拥有 CREATE 权限。(这些限制用于确保,更改所有者不会做出任何你不能通过删除并重新创建该属性图来完成的事情。不过,超级用户无论如何都可以更改任何属性图的所有权。)
name #要修改的属性图名称(可以带模式限定)。
IF EXISTS #如果属性图不存在,则不抛出错误。在这种情况下会发出一条提示。
vertex_table_definitionedge_table_definition #vertex_table_aliasedge_table_alias #要操作的现有顶点表或边表的别名。(注意,如果顶点表或边表是用 AS 创建的,那么该别名可能不同于底层表名。)alias
label_nameproperty_nameexpression #new_owner #属性图新所有者的用户名。
new_name #属性图的新名称。
new_schema #属性图的新模式。
在 the section called “注意” 中描述的属性图一致性检查,必须由 ALTER PROPERTY GRAPH 操作保持满足。在某些情况下,可能需要在单个命令中执行多个修改,才能满足这些检查。
ALTER PROPERTY GRAPH g1 ADD VERTEX TABLES (v2); ALTER PROPERTY GRAPH g1 ALTER VERTEX TABLE v1 DROP LABEL foo; ALTER PROPERTY GRAPH g1 RENAME TO g2;
ALTER PROPERTY GRAPH 符合 ISO/IEC 9075-16(SQL/PGQ)。