pg_import_system_collations()

用于将排序规则添加到系统目录的函数

pg_import_system_collations() 是一个系统函数,用于从操作系统中可用的排序规则添加到系统目录。

pg_import_system_collations()PostgreSQL 10 中添加。

用法

pg_import_system_collations ( schema regnamespace ) → integer

pg_import_system_collations() 通常在安装新的操作系统区域设置后使用。

提供的模式通常是 pg_catalog,但也可能是用户定义的模式。

返回添加的新排序规则对象的数目。

更改历史记录

示例

确定缺少所需的区域设置

postgres=# CREATE TABLE foo (id INT NOT NULL, val TEXT COLLATE "de_DE.utf8");
ERROR:  collation "de_DE.utf8" for encoding "UTF8" does not exist

安装缺少的区域设置,这里在基于 Debian 的系统上

# apt-get install -y  language-pack-de
...
Generating locales (this might take a while)...
  de_AT.UTF-8... done
  de_BE.UTF-8... done
  de_CH.UTF-8... done
  de_DE.UTF-8... done
  de_IT.UTF-8... done
  de_LI.UTF-8... done
  de_LU.UTF-8... done
Generation complete.

执行 pg_import_system_collations()

postgres=# SELECT pg_import_system_collations('pg_catalog');
 pg_import_system_collations 
-----------------------------
                          14
(1 row)

现在可以使用所需的排序规则创建表

postgres=# CREATE TABLE foo (id INT NOT NULL, val TEXT COLLATE "de_DE.utf8");
CREATE TABLE

如果没有可导入的新排序规则,则返回 0

postgres=# SELECT pg_import_system_collations('pg_catalog');
 pg_import_system_collations 
-----------------------------
                           0
(1 row)

必须始终显式指定目标模式

postgres=# SELECT pg_import_system_collations();
ERROR:  function pg_import_system_collations() does not exist
LINE 1: SELECT pg_import_system_collations();
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

分类

排序规则区域设置和字符集处理系统函数

另请参阅

pg_collationpg_collation_actual_version()pg_database_collation_actual_version()

反馈

提交任何关于“pg_import_system_collations()”的评论、建议或更正 此处