开发版本: 19 / devel
此文档适用于不受支持的 PostgreSQL 版本。
您可能需要查看当前版本的相同页面,或上面列出的其他受支持版本。

ALTER PROPERTY GRAPH

ALTER PROPERTY GRAPH — 更改 SQL 属性图的定义

Synopsis

ALTER PROPERTY GRAPH name ADD
    [ {VERTEX|NODE} TABLES ( vertex_table_definition [, ...] ) ]
    [ {EDGE|RELATIONSHIP} TABLES ( edge_table_definition [, ...] ) ]

ALTER PROPERTY GRAPH name DROP
    {VERTEX|NODE} TABLES ( vertex_table_alias [, ...] ) [ CASCADE | RESTRICT ]

ALTER PROPERTY GRAPH name DROP
    {EDGE|RELATIONSHIP} TABLES ( edge_table_alias [, ...] ) [ CASCADE | RESTRICT ]

ALTER PROPERTY GRAPH name ALTER
    {VERTEX|NODE|EDGE|RELATIONSHIP} TABLE element_table_alias
    { ADD LABEL label_name [ NO PROPERTIES | PROPERTIES ALL COLUMNS | PROPERTIES ( { expression [ AS property_name ] } [, ...] ) ] } [ ... ]

ALTER PROPERTY GRAPH name ALTER
    {VERTEX|NODE|EDGE|RELATIONSHIP} TABLE element_table_alias
    DROP LABEL label_name [ CASCADE | RESTRICT ]

ALTER PROPERTY GRAPH name ALTER
    {VERTEX|NODE|EDGE|RELATIONSHIP} TABLE element_table_alias
    ALTER LABEL label_name ADD PROPERTIES ( { expression [ AS property_name ] } [, ...] )

ALTER PROPERTY GRAPH name ALTER
    {VERTEX|NODE|EDGE|RELATIONSHIP} TABLE element_table_alias
    ALTER LABEL label_name DROP PROPERTIES ( property_name [, ...] ) [ CASCADE | RESTRICT ]

ALTER PROPERTY GRAPH name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
ALTER PROPERTY GRAPH name RENAME TO new_name
ALTER PROPERTY GRAPH [ IF EXISTS ] name SET SCHEMA new_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_definition
edge_table_definition #

参见 CREATE PROPERTY GRAPH

vertex_table_alias
edge_table_alias #

要操作的现有顶点表或边表的别名。(注意,如果顶点表或边表是用 AS alias 创建的,那么该别名可能不同于底层表名。)

label_name
property_name
expression #

参见 CREATE PROPERTY GRAPH

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)。