数据库管理系统中的模式代表一套用于规范/处理数据库的规则。它是一种逻辑结构,包含各种数据库对象,如视图、表、索引、序列等。在Postgres中,“public”是一个默认模式。因此,默认情况下,Postgres 用户可以访问“公开”模式并在其中创建对象,如视图、表格等。

然而,SET SEARCH_PATH命令允许用户将任何其他模式设置为默认模式。本文演示了如何使用以下方法在Postgres中更改模式:

  • 方法一:更改用户当前会话的模式
  • 方法二:永久更改默认模式

方法1:更改用户当前会话的模式

本节仅给出当前会话的步骤操作,用于更改模式:

步骤1:检查当前/默认模式

执行以下提供的命令来检查当前/默认模式:

SHOW SEARCH_PATH;

图片

上面的摘要显示默认模式是“公开”的。

步骤2:更改默认模式

现在执行“\dn”命令查看可用的模式:

\dn

图片

假设我们想将“示例”模式设置为默认模式。为此,请使用“SET SEARCH_PATH”命令,如下:

SET SEARCH_PATH = example;
图片

输出中的“SET”消息表示所选模式已被设置为默认模式。

步骤3:确认当前模式

您可以使用以下命令验证当前会话的默认模式:

SHOW SEARCH_PATH;
图片

“示例”模式被设置为默认模式。不过,它将仅作为当前会话的默认模式。当前会话结束后,默认模式将重置为“公开”模式。

方法二:永久更改默认模式

本节描述永久更改默认模式的以下方面:

- 在数据库层
面更改模式- 在用户层面更改模式

如何在数据库层面永久更改默认模式?

要在数据库层面更改默认模式,使用“ALTER DATABASE”命令配合“SET SEARCH_PATH”子句:

ALTER DATABASE db_name SET search_path TO schema_name;

把“db_name”和“schema_name”替换成你选择的数据库和模式名称。

步骤1:连接数据库

首先,使用“\l”命令查看可用的数据库:

\l          

图片

让我们建立一个名为“sample_db”的数据库连接:

\c sample_db;

图片

步骤2:检查当前的模式

执行以下提供的命令,检查所选数据库的当前/默认模式:

SHOW SEARCH_PATH;
图片

要将“public”模式在数据库层面更改为“示例”模式,将使用“ALTER DATABASE”命令如下:

ALTER DATABASE sample_db SET SEARCH_PATH TO example;
图片

步骤3:确认当前模式

您可以使用以下命令检查当前的模式:

SHOW SEARCH_PATH;

图片

现在,每当你与“sample_db”数据库建立连接时,该数据库的默认模式将是“示例”。

如何在用户层面永久更改默认模式?

要在用户/角色层更改默认模式,使用“ALTER USER”或“ALTER ROLE”命令,配合“SET SEARCH_PATH”子句:

ALTER ROLE|USER role_name SET search_path TO schema_name;

请指定用户名和模式名,代替“role_name”和“schema_name”。

步骤1:当前默认模式

我们目前以默认模式为“public”的“postgres”用户登录,如下片段所示:

图片

步骤2:在用户层面永久更改默认模式

要在用户层面将“public”模式更改为“示例”模式,将使用“ALTER USER”命令如下:

ALTER USER postgres SET SEARCH_PATH TO example;

图片

步骤3:确认当前模式

要验证当前模式,请使用以下命令:

SHOW SEARCH_PATH;

图片

现在,每当你以“postgres”用户身份登录时,默认的模式会是“示例”。

结论

在PostgreSQL中,“SET SEARCH_PATH”命令用于临时更改模式。要在数据库层或用户拉杆上永久更改模式,分别使用“ALTER DATABASE”和“ALTER USER”命令配合“SET SEARCH_PATH”命令。这篇文章提供了如何在Postgres中更改默认模式的逐步指南。

 

转载处:How Do I Set/Change the Default Schema in PostgreSQL — CommandPrompt Inc.

posted on 2026-07-28 09:17  颩~  阅读(14)  评论(0)    收藏  举报