PostgreSQL 如何在 psql 命令行上更改默认的 public 模式
在本文中,我们将介绍如何在 PostgreSQL 的 psql 命令行上更改默认的 public 模式。默认情况下,PostgreSQL中的所有新对象都会被创建在名为public的schema模式下。但是,有时候我们希望将默认模式更改为其他模式,以便更好地组织我们的数据库对象。
阅读更多:PostgreSQL 教程
什么是schema
在开始之前,我们首先需要了解什么是schema。在PostgreSQL中,schema是一种将数据库对象组织在一起的方式。它可以看作是一个命名空间,用于将对象分类和隔离。通过将数据库对象(如表、视图、函数等)放在不同的schema中,我们可以更好地组织和管理它们。
默认情况下,PostgreSQL创建了一个名为public的schema,并将其中的对象视为全局可见。当我们使用psql命令行或其他客户端连接到数据库时,会默认连接到该schema。然而,我们可以通过更改配置或在连接时明确指定不同的schema来更改默认行为。
修改默认的public模式
要更改默认的public模式,我们需要编辑PostgreSQL的配置文件。打开配置文件,找到以下行,并将值更改为您希望作为默认模式的模式名称:
search_path = 'your_schema_name,public'
例如,如果我们想将默认模式更改为名为myschema的模式,我们将修改配置文件中的以下行:
search_path = 'myschema,public'
保存并关闭配置文件后,重新启动PostgreSQL服务器以使更改生效。
另一种修改默认模式的方法是使用ALTER ROLE命令。在执行该命令之前,我们需要连接到数据库并成为具有更改权限的超级用户。
ALTER ROLE your_username SET search_path = your_schema_name,public;
将your_username替换为您的用户名,your_schema_name替换为您希望的默认schema名称。执行此命令后,下次连接到数据库时将使用所设置的schema作为默认模式。
示例说明
假设我们有一个PostgreSQL数据库,其中包含两个schema:public和sales。我们希望将默认模式更改为sales,以便所有新对象都被创建在该模式下。
首先,我们可以使用以下命令连接到数据库:
psql -U your_username -d your_database
使用以下命令创建sales模式,并将其设置为默认模式:
CREATE SCHEMA sales;
ALTER ROLE your_username SET search_path = sales,public;
现在,当我们在psql命令行上创建新的表或其他对象时,它们将被自动创建在sales模式下。
总结
通过更改PostgreSQL的配置文件或使用ALTER ROLE命令,我们可以在psql命令行上更改默认的public模式。这使我们能够更好地组织和管理数据库对象。无论是通过编辑配置文件还是使用ALTER ROLE命令,我们都可以将默认模式更改为任何存在的schema名称,并确保新对象创建在我们选择的模式下。这为我们提供了更大的灵活性和控制能力。
极客笔记