📜  PostgreSQL ALTER Schema

📅  最后修改于: 2020-11-30 07:52:22             🧑  作者: Mango

PostgreSQL ALTER模式

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

ALTER SCHEMA命令

alter schema命令将允许我们修改模式的定义。例如,我们还可以借助以下alter schema命令来重命名模式。

alter schema命令的语法如下:

ALTER SCHEMA schema_name 
RENAME TO new_name;

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

Parameters Description
Alter Schema It is a keyword which is used to change the description of a schema
Schema_Name It is used to describe the name of the schema, which we need to rename it.
New_Name This parameter is used to define the new name of the schema, and we cannot start the new name with pg_, because in PostgreSQL, such names are kept for system schemas.

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

除了重命名模式,在ALTER SCHEMA中,我们还可以使用以下命令的帮助来修改新模式的模式所有者:

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

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

Parameters Description
Schema_Name For modifying the owner in the ALTER SCHEMA condition, we will describe the name of the schema.
New_owner It is used to define the new owner in the OWNER TO condition.

PostgreSQL ALTER SCHEMA命令的示例

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

使用ALTER SCHEMA命令重命名架构

下面的示例说明了如何使用help alter schema命令重命名架构。

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

ALTER SCHEMA myschema
RENAME TO Schema1;

输出量

一旦执行了以上命令,我们将获得以下“输出”窗口:

同样,下面的示例用于将Company模式的重命名描述为部门:

ALTER SCHEMA Company
RENAME TO department;

输出量

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

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

在此特定示例中,我们将借助Alter模式将Schema1的所有者从myschema修改为Postgres:

ALTER SCHEMA Schema1
OWNER TO postgres;

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

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