九月 14, 2023
摘要:在本教程中,您将学习如何使用 PostgreSQL 的ALTER SCHEMA语句来修改模式的定义。
目录
PostgreSQL ALTER SCHEMA 语句概述
ALTER SCHEMA语句允许您更改模式的定义。例如,您可以按如下方式重命名模式:
ALTER SCHEMA schema_name
RENAME TO new_name;
在这个语法中:
- 首先,在
ALTER SCHEMA关键字后指定要重命名的模式的名称。 - 其次,在
RENAME TO关键字后指定模式的新名称。
请注意,要执行此语句,您必须是模式的所有者,并且必须具有数据库的CREATE权限。
除了重命名模式之外,ALTER SCHEMA还允许您将模式的所有者更改为新的所有者,如以下语句所示:
ALTER SCHEMA schema_name
OWNER TO { new_owner | CURRENT_USER | SESSION_USER};
在这个语句中:
- 首先,在
ALTER SCHEMA子句中指定要更改所有者的模式的名称。 - 其次,在
OWNER TO子句中指定新的所有者。
PostgreSQL ALTER SCHEMA 语句示例
让我们看一些使用ALTER SCHEMA语句的例子来更好地理解。
请注意,以下部分中的示例基于我们在CREATE SCHEMA教程中创建的模式。
1) 使用 ALTER SCHEMA 语句重命名模式的示例
此示例使用ALTER SCHEMA语句将模式doe重命名为finance:
ALTER SCHEMA doe
RENAME TO finance;
同样,以下示例将john模式重命名为accounting:
ALTER SCHEMA john
RENAME TO accounting;
2) 使用 ALTER SCHEMA 语句更改模式所有者的示例
以下示例使用ALTER SCHEMA语句将模式accounting的所有者从john更改为postgres:
ALTER SCHEMA finance
OWNER TO postgres;
以下是查询用户创建的模式的语句:
SELECT *
FROM
pg_catalog.pg_namespace
WHERE
nspacl is NULL AND
nspname NOT LIKE 'pg_%'
ORDER BY
nspname;
输出是:

从输出中可以清楚地看到,finance模式现在由 id 为 10 的所有者拥有,即postgres。
同样,此语句将accounting模式的所有者更改为postgres:
ALTER SCHEMA accounting
OWNER TO postgres;

在本教程中,您学习了如何使用 PostgreSQL 的ALTER SCHEMA语句重命名模式或更改模式的所有者。