小编use*_*833的帖子

给定数据库和用户的 search_path 是什么?

我可以看到电流search_path

show search_path ;
Run Code Online (Sandbox Code Playgroud)

我可以search_path当前会话设置:

set search_path = "$user", public, postgis;
Run Code Online (Sandbox Code Playgroud)

同样,我可以search_path为给定的数据库永久设置:

alter database mydb set search_path = "$user", public, postgis ;
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令永久设置search_path给定角色(用户):

alter role johnny set search_path = "$user", public, postgis ;
Run Code Online (Sandbox Code Playgroud)

但我想知道如何在更改数据库角色设置search_path之前确定它们是什么(相对于)?

postgresql configuration

73
推荐指数
3
解决办法
12万
查看次数

是否有与 bash 的反向搜索历史相当的 psql?

我非常喜欢bash的反向搜索历史(Cr)(命令行功能):

从当前行开始向后搜索,并根据需要在历史记录中“向上”移动。这是一个增量搜索。

当我进入control-rbash,我得到以下信息:

(reverse-i-search)`':
Run Code Online (Sandbox Code Playgroud)

而且我能够输入以前执行过的命令的字符,并仔细研究我正在寻找的内容。如果我出错了,我可以输入control-h擦除一个字符(相当于backspace)。

这个命令行功能使得引用以前执行的命令变得非常容易。我想知道psql. 我发现仅依赖control-pand是非常低效的control-n

对于它的价值,我正在使用PostgreSQL 9.3.1 on x86_64-apple-darwin13.0.0, compiled by Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn), 64-bit- 通过Postgres.app获得。

postgresql psql command-line mac-os-x

22
推荐指数
1
解决办法
6951
查看次数

选择指定数量的唯一 ID,其中第二列是唯一的

查看下面的示例,从第一行 ( id=9)开始,然后向下工作,选择我们尚未看到的具有's的行数限制。我们“选择”是因为我们还没有. 我们继续像这样往下工作,但是当我们到达时我们跳过它,因为我们已经有了(从行开始)。我们以同样的方式继续,我们最终停下来,因为我们已经积累了行(我们想要的限制)。4secid=9sec=1id=7sec=5id=8id=34

 id | sec
----+-----
  9 |   1  <- 1
  8 |   5  <- 2
  7 |   5  # skip, already have sec=5
  6 |   4  <- 3
  5 |   1  # skip, already have sec=1
  4 |   1  # skip, already have sec=1
  3 |   3  <- 4
  2 |   2
  1 |   1
Run Code Online (Sandbox Code Playgroud)

当然,SQL算法可以(将!)与我描述的不同。

想要的结果:

 id
----
  9
  8
  6
  3 …
Run Code Online (Sandbox Code Playgroud)

postgresql select greatest-n-per-group

4
推荐指数
2
解决办法
1927
查看次数

在 PostgreSQL 中有没有办法对列进行排名/权重以便对结果进行排序?

假设我正在搜索三个文本列。我不仅想要与给定单词或短语匹配的结果,而且还想对它们进行加权 ( column A > column B > column C) - 从而对结果进行排序,使得与列中的单词匹配的行A将比列中匹配的行高B,而那些column 中的匹配B将高于 column 中的匹配C

这可能吗?你能为我提供一些术语或进一步阅读的建议吗?

postgresql order-by

3
推荐指数
1
解决办法
4771
查看次数

以数组、文本和全文形式实现的标签的能力和性能

搜索 能力性能方面,将标签作为或或全文字段实现的优缺点是什么?arraytext

我发现选择使用数组实现标签的能力有局限性,因为在我看来,如果数组包含,['juicy fruit']那么搜索的人'fruit'将找不到该记录(例如,tags && ARRAY['fruit']找不到它)。创建该记录的人将不得不输入更像是['juicy fruit', 'juicy', 'fruit']只需搜索'fruit'或 即可找到他们的记录的内容'juicy'。而如果我将标签实现为text,那么搜索'fruit'将找到'juicy fruit',更进一步,如果我将标签实现为全文,那么我将'juicy fruit'在使用字符串'fruits'(复数)进行搜索时找到。此外,我认为进行全文搜索不会有性能损失。想法?

但也许标签的全部意义 完全匹配

postgresql full-text-search array

3
推荐指数
1
解决办法
1374
查看次数