管理排序规则
ICU 库提供排序规则版本跟踪功能,以确保当新版本的 ICU 可用时,依赖排序规则的索引可以重新建立索引。要查看当前数据库是否有需要刷新的排序规则,可以在使用 psql
或 pgAdmin
进行连接后使用以下查询:
SELECT pg_describe_object(refclassid, refobjid, refobjsubid) AS "Collation", pg_describe_object(classid, objid, objsubid) AS "Object" FROM pg_depend d JOIN pg_collation c ON refclassid = 'pg_collation'::regclass AND refobjid = c.oid WHERE c.collversion <> pg_collation_actual_version(c.oid) ORDER BY 1, 2;
此查询返回如下输出:
Collation | Object
-----------+--------
(0 rows)
在此示例中,不需要更新排序规则。
要获取 Babelfish 数据库中预定义排序规则的列表,您可以将 psql
或 pgAdmin
用于以下查询:
SELECT * FROM pg_collation;
预定义的排序规则存储在 sys.fn_helpcollations
表中。您可以使用以下命令显示有关排序规则的信息(例如其 lcid、样式和排序规则标志)。要使用 sqlcmd
获取所有排序规则的列表,请连接到 T-SQL 端口(原定设置为 1433),然后运行以下查询:
1>
:setvar SQLCMDMAXVARTYPEWIDTH 40
2>
:setvar SQLCMDMAXFIXEDTYPEWIDTH 40
3>
SELECT * FROM fn_helpcollations()
4>
GO
name description ---------------------------------------- ---------------------------------------- arabic_cs_as Arabic, case-sensitive, accent-sensitive arabic_ci_ai Arabic, case-insensitive, accent-insensi arabic_ci_as Arabic, case-insensitive, accent-sensiti bbf_unicode_bin2 Unicode-General, case-sensitive, accent- bbf_unicode_cp1250_ci_ai Default locale, code page 1250, case-ins bbf_unicode_cp1250_ci_as Default locale, code page 1250, case-ins bbf_unicode_cp1250_cs_ai Default locale, code page 1250, case-sen bbf_unicode_cp1250_cs_as Default locale, code page 1250, case-sen bbf_unicode_pref_cp1250_cs_as Default locale, code page 1250, case-sen bbf_unicode_cp1251_ci_ai Default locale, code page 1251, case-ins bbf_unicode_cp1251_ci_as Default locale, code page 1251, case-ins bbf_unicode_cp1254_ci_ai Default locale, code page 1254, case-ins ... (124 rows affected)
示例中显示的第 1 行和第 2 行仅出于文档可读性目的而缩小了输出范围。
1>
SELECT SERVERPROPERTY('COLLATION')
2>
GO
serverproperty --------------------------------------------------------------------------- sql_latin1_general_cp1_ci_as (1 rows affected)
1>