PostgreSQL ALTER 架构


PostgreSQL ALTER 架构

在本节中,我们将学习PostgreSQL ALTER SCHEMA 命令,命令用于更改模式的描述

ALTER SCHEMA 命令

ALTER模式命令将使我们能够修改架构的定义。例如,我们还可以在以下 alter schema 命令的帮助下重命名架构。

更改模式命令的语法如下:

ALTER SCHEMA schema_name   
RENAME TO new_name;

我们在上述语法中使用了以下参数:

参数 描述
Alter Schema 它是一个关键字,用于更改架构的描述
Schema_Name 它用于描述模式的名称,我们需要对其进行重命名。
New_Name 此参数用于定义模式的新名称,我们不能以pg_开始新名称因为在 PostgreSQL 中,此类名称是为系统模式保留的。

注意:要执行上述命令,我们必须是架构的所有者,并且我们还可以访问数据库的 CREATE 权限。

除了重命名架构之外,在 ALTER SCHEMA 中,我们还可以使用以下命令的帮助为新架构修改架构的所有者

ALTER SCHEMA schema_name   
OWNER TO { new_owner | CURRENT_USER | SESSION_USER};

我们在上述语法中使用了以下参数:

参数 描述
Schema_Name 为了在 ALTER SCHEMA 条件中修改所有者,我们将描述模式的名称。
New_owner 它用于在 OWNER TO 条件中定义新的所有者。

PostgreSQL ALTER SCHEMA 命令示例

让我们看几个可以理解如何在 PostgreSQL 中使用ALTER SCHEMA 命令的例子。下面的这些示例基于我们在PostgreSQL CREATE SCHEMA 部分中创建的模式

使用 ALTER SCHEMA 命令重命名架构

下面的示例解释为使用 help alter schema 命令重命名架构。

在这里,我们将把myschema 模式重命名为Schema1模式:

ALTER SCHEMA myschema  
RENAME TO Schema1;

输出

执行上述命令后,我们将获得以下输出窗口:

PostgreSQL ALTER 架构

以同样的方式,下面的例子是用来形容改名公司架构部门:

ALTER SCHEMA Company  
RENAME TO department;

输出

执行上述命令后,我们将得到以下输出:

PostgreSQL ALTER 架构

使用 alter schema 命令修改架构的所有者

在这个特定的例子中,我们将在Alter 模式的帮助下将Schema1的所有者从myschema修改为Postgres

ALTER SCHEMA Schema1  
OWNER TO postgres;

PostgreSQL ALTER 架构

然后,我们将执行用户创建的架构命令:

SELECT * FROM pg_catalog.pg_namespace  
WHERE nspname NOT LIKE 'pg_%' AND  
nspacl is NULL  
ORDER BY nspname;

注意:在 PostgreSQL 中,pg_catalog 是典型的元数据和 Postgres 用于内部完成事物的核心模式。

所述pg_namespace是一个目录,其用于存储所述的命名空间。命名空间是基本 SQL 模式的结构,每个命名空间可以有不同的类型、关系等集合,没有任何名称冲突。

输出

执行上述查询后,我们将得到如下输出,其中包含一张表,我们可以看到Schema1架构由所有者 id 10维护,即Postgres id。

PostgreSQL ALTER 架构