如何在pgAdmin 4的排序规则菜单中添加更多项目?

How add more items into collation menu in pgAdmin 4?

提问人:Pavel Sala 提问时间:11/13/2023 最后编辑:Pavel Sala 更新时间:11/17/2023 访问量:83

问:

我想在 pgAdmin(Widnows 10 上的 PostgreSQL 16)中创建一个新数据库,但我只能从 3 个项目中选择数据库排序。

如果我列出可用的排序规则

select *
from pg_collation pgc

,共有 2245 条记录。

pgAdmin中的排序规则菜单

我一直在寻找解决方案,但其他人都没有这个问题。 是否可以在排序规则组合框中编辑项目?

谢谢。 聚苯乙烯

[更新]我使用查询widnow创建了一个新数据库。我选择了“cs_CZ。UTF-8“用于 COLLATE 和 CTYPE。数据库已创建,但定义选项卡Database with blank collation and character type中没有排序规则和字符类型的值。

这正常吗? 我也许应该阅读一些关于PostgreSQL数据库的基本信息,因为现在我有点失望。我在以前的项目中使用了 Firebird 数据库,没有这样的障碍。

也许 Postgre 16 太“年轻”了,最好使用版本 15?或者 pgAdmin 不是最好的工具,我应该尝试 DBeaver? 你觉得怎么样?

PostgreSQL 排序规则 pgadmin-4

评论

1赞 JGH 11/13/2023
或者,只需使用 psql 控制台创建数据库。
0赞 Laurenz Albe 11/14/2023
这看起来很有问题。使用其他客户端。

答:

1赞 Zegarek 11/13/2023 #1

您使用的是 PostgreSQL 15 之前的旧版本的 PGAdmin,因此它不会公开所有 CREATE DATABASE 参数,这些参数可让您选择使用这些其他排序规则所需的一组有效参数。您可能需要覆盖locale_provider

locale_provider指定要用于此数据库中的默认排序规则的提供程序。可能的值为(如果服务器是在 ICU 支持下构建的)或 。默认情况下,提供程序与模板的提供程序相同。有关详细信息,请参见Section 24.1.4iculibc

以及icu_locale

icu_locale指定数据库默认排序规则顺序和字符分类的 ICU 区域设置(参见第 24.2.2.3.2 节),覆盖设置区域设置区域设置提供程序必须是 ICU。默认值为区域设置(如果已指定);否则,设置与模板数据库相同。

解决方法是,您可以连接到此群集上的任何数据库,打开常规 SQL 窗口并运行以下命令:

create database collation_test2 
   template template0
   encoding 'UTF8'
   locale_provider icu 
   icu_locale 'cs-CZ-x-icu';

或者更新到 PGAdmin 7.7 或更高版本,其中这些参数通过数据库对话框显示。

评论

0赞 Pavel Sala 11/17/2023
我从官方页面下载了 PostgreSQL 16.1 (Windows x86-64) 的最新安装程序。我的pgAdmin版本是7.6。
0赞 Zegarek 11/17/2023
@PavelSala 您是否确保没有连接到旧版本?完全可以安装多个版本的 PGAdmin 或 PostgreSQL,甚至同时运行。当你跑步时,你会得到什么?select version();
0赞 Pavel Sala 11/17/2023
我在干净的 Windows 16.1 上安装了这个 ( sbp.enterprisedb.com/getfile.jsp?fileid=1258792 ) 安装程序的 PostgreSQL 10。所以没有其他版本可以存在。select version(); -> PostgreSQL 16.0, compiled by Visual C++ build 1935, 64-bit
0赞 Zegarek 11/17/2023
@PavelSala等等,我忽略了你发布的pgAdmin版本是7.6。我已经在答案中解决了这个问题:您需要 7.7 或更高版本。EDB 安装程序来自您提供捆绑包的链接,或者允许您通过它提供的 stackbuilder 添加 pgAdmin 4 v.7.8。如果您确实从 EDB 包中获取了 pgAdmin,您应该能够在 path 下找到 pgAdmin 4 条目。我刚才已经测试过了,我在该数据库对话框中看到了所有新选项。C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PostgreSQL 16
1赞 Pavel Sala 11/23/2023
我像你一样通过stackbuilder重新安装了PostgreSQL 16,现在我有pgAdmin 4 v 7.8。“数据库”对话框现在提供“本地提供程序”项。将其设置为“icu”后,我可以选择我想要的“ICU Locale”。感谢您的帮助!