我只想知道如何安装在 trigram 索引方案中使用的模块pg_tgrm
,该方案允许您在索引上执行非锚定搜索模式。
WHERE foo LIKE '%bar%';
Run Code Online (Sandbox Code Playgroud) postgresql index installation postgresql-9.3 postgresql-extensions
我有一个 PostgreSQL 9.5 服务器,上面有自动为用户创建角色和数据库的脚本。在这些数据库中启用特定扩展(例如 pgcrypto)会很有帮助,但据我所知,必须是超级用户才能运行CREATE EXTENSION
. 有没有办法在不使用超级用户帐户手动登录的情况下启用此类扩展?
由于pg_catalog
架构中的对象隐含在search_path
( docs ) 中,是否建议在该架构中安装扩展?
postgresql best-practices postgresql-9.4 postgresql-extensions
我想在我的 postgresql 数据库中有 python3 来编写存储过程。
在psql
客户端中,当我输入命令时create extension plpython3u
,出现错误:
couldn't open extension control file /usr/share/postgresql/9.1/extension/plpython3u.control : No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经检查过,目录中有 plpythonu.control 和 plpython2u.control ,但不是版本 3 的那个。
但是,我已经从 depot安装了软件包python3
和python3-postgresql
(除其他外)。我使用的是 Ubuntu 12.04,内核 3.2.0.38,安装了 postgresql 9.1。
我应该安装(或做什么)才能在我的机器上安装 plpython3u.control 文件并在我的数据库中使用 python3?
我在 Ubuntu Linux 14.04 上使用 Postgres 9.3。如何安装/启用 uuid-ossp 扩展?我首先验证了 contrib 包是否已安装……
root@prodbox:/home/rails/myproject# apt-get install postgresql-contrib
Reading package lists... Done
Building dependency tree
Reading state information... Done
postgresql-contrib is already the newest version.
Run Code Online (Sandbox Code Playgroud)
然后我登录并尝试创建扩展...
root@prodbox:/home/rails/myproject# su - postgres
postgres@prodbox:~$ psql
psql (9.6.0, server 9.3.11)
Type "help" for help.
postgres=# CREATE EXTENSION "uuid-ossp";
ERROR: could not open extension control file "/usr/share/postgresql/9.3/extension/uuid-ossp.control": No such file or directory
Run Code Online (Sandbox Code Playgroud)
我都没有想法了。我错过了什么?
我需要在我的数据库上加载 uuid 扩展,这是在运行时创建的。创建数据库的用户不是超级用户,她只有“CREATEDB”权限。
有没有办法做到这一点?谢谢。
我在 RDS 上创建了数据库实例并使用了以下功能。它在本地开发机器上使用相同的 PostgreSQL 版本时出错。
create or replace function uuid() returns uuid as 'uuid-ossp', 'uuid_generate_v1' volatile strict language C;
Run Code Online (Sandbox Code Playgroud)
这是错误日志:
Run Code Online (Sandbox Code Playgroud)ERROR: permission denied for language c ********** Error ********** ERROR: permission denied for language c SQL state: 42501
我在 ruby on rails 3.2 中使用此函数为我的模式生成 uuid。
postgresql postgresql-9.2 postgresql-9.3 rails postgresql-extensions
word_similarity 函数的文档说:
返回一个数字,该数字指示第一个字符串与第二个字符串中最相似的单词的相似程度。该函数在第二个字符串中搜索最相似的词,而不是最相似的子字符串。结果的范围是零(表示两个字符串完全不同)到一(表示第一个字符串与第二个字符串的一个单词相同)。
但是,如果“第一个字符串”包含多个单词,他们对结果应该是什么有点含糊。以下结果的解释是什么:
Run Code Online (Sandbox Code Playgroud)select word_similarity('foo bar','foo bar baz');
| word_similarity | | :-------------- | | 1 |
Run Code Online (Sandbox Code Playgroud)select word_similarity('baz bar','foo bar baz');
| word_similarity | | :-------------- | | 1 |
Run Code Online (Sandbox Code Playgroud)select word_similarity('baz foo','foo bar baz');
| word_similarity | | :-------------- | | 0.8 |
dbfiddle在这里
我正在尝试编写一个SELECT
从中pg_catalog
提取函数名称、其架构名称和创建该函数的扩展名的函数。
拉取我使用的函数列表(简化版本)
SELECT pg_proc.proname, pg_namespace.nspname AS proschema
FROM pg_proc
INNER JOIN pg_namespace ON (pg_namespace.oid = pg_proc.pronamespace)
Run Code Online (Sandbox Code Playgroud)
要选择我可以运行的扩展
SELECT pg_extension.extname, pg_namespace.nspname as extschema
FROM pg_catalog.pg_extension
INNER JOIN pg_catalog.pg_namespace ON (pg_namespace.oid = pg_extension.extnamespace)
Run Code Online (Sandbox Code Playgroud)
现在我正在寻找它们在“”时创建的扩展和函数之间的链接CREATE EXTENSION
。理想情况下,SELECT 应该生成 extension_name、extension_schema、foo_name、foo_schema 的列表
postgresql ×10
uuid ×2
functions ×1
index ×1
installation ×1
permissions ×1
python ×1
rails ×1