如何确定 PostgreSQL 中表的排序规则?

Jer*_*acs 25 postgresql collation dml ddl

我想编写一个检查 PostgreSQL 表中使用的排序规则的脚本,但谷歌搜索Postgresql detect collation对我来说效果不佳,而且文档并没有让搜索变得容易。

谁能告诉我如何检查这个?

a_h*_*ame 33

要检查列上的非默认排序规则,您可以使用以下查询:

select table_schema, 
       table_name, 
       column_name,
       collation_name
from information_schema.columns
where collation_name is not null
order by table_schema,
         table_name,
         ordinal_position;
Run Code Online (Sandbox Code Playgroud)

要查找数据库的排序规则,您需要查询pg_database

select datname, 
       datcollate
from pg_database;
Run Code Online (Sandbox Code Playgroud)

以下是 PostgreSQL 手册的相关页面:


小智 8

除了 a_horse_with_no_name 的答案之外,如果您想要当前连接到的数据库的排序规则,您可以使用以下查询:

SELECT datcollate AS collation
FROM pg_database 
WHERE datname = current_database();
Run Code Online (Sandbox Code Playgroud)