📅  最后修改于: 2020-11-30 07:52:22             🧑  作者: Mango
在本节中,我们将学习PostgreSQL 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 CREATE SCHEMA部分中创建的模式。
下面的示例说明了如何使用help alter schema命令重命名架构。
在这里,我们将myschema模式重命名为Schema1模式:
ALTER SCHEMA myschema
RENAME TO Schema1;
输出量
一旦执行了以上命令,我们将获得以下“输出”窗口:
同样,下面的示例用于将Company模式的重命名描述为部门:
ALTER SCHEMA Company
RENAME TO department;
输出量
执行完上述命令后,我们将获得以下输出:
在此特定示例中,我们将借助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)维护。