Mil*_*iez 5 postgresql psql postgresql-extensions
所以,我创建了citext
扩展schema public
,我可以看到它在那里,但是它在该模式的数据库中不可用。数据库public
也在其中,因为它是从postgres
用户创建的,并且在创建时没有指定架构。这是包含更多数据的屏幕截图:
所以,您可以看到扩展程序在那里,但是一旦我连接到数据库,它就不再可用,我基本上必须将它安装在数据库中。任何想法如何使其最初也可用于数据库?
PgSQL v9.6
简短回答
您实际上正在使用(至少)两个数据库。您安装CITEXT
错了。
更长的答案
在第一个数据库(其名称未显示)中,您安装CITEXT
. 这个数据库可能就是postgres
安装PostgreSQL时默认创建的数据库。
然后使用该\c
命令并切换到另一个数据库 ( sensordata
)。您需要在此数据库中创建您的扩展。
也就是说,你应该这样做:
\c sensordata
CREATE EXTENSION citext;
\dx
Run Code Online (Sandbox Code Playgroud)
如果需要citext
在多个数据库中使用该模块,则需要在每个数据库中安装该模块。其他数据库上的扩展名并不重要。数据库之间互不干扰。
每个 PostgreSQL 集群(=数据库安装)(默认情况下)都有一个名为postgres
. 如果您使用psql
,则它是您“默认”连接的那个。您实际上不需要拥有postgres
数据库。我猜postgres
数据库是你安装的地方CITEXT
扩展的地方。
默认情况下,每个 PostgreSQL 数据库都有一个公共模式。
PostgreSQL 的工作方式与(例如)MySQL 不同,在 MySQL 中您可以通过单个连接同时访问多个数据库(前提是您拥有具有正确权限的用户)。
在 PostgreSQL 中,您可以通过单个连接访问一个数据库。在数据库中,您可以根据需要访问任意数量的模式。模式在 PostgreSQL 中扮演的角色几乎与数据库扮演的角色相同在 MySQL 中
也可以看看:
归档时间: |
|
查看次数: |
3392 次 |
最近记录: |