PostgreSQL pg_collation

2021-09-14 10:33 更新

目錄pg_collation描述了可用的排序規(guī)則,其本質(zhì)是從一個(gè)SQL名字到操作系統(tǒng)locale分類的映射。更多信息參見第 23.2 節(jié)

表 51.12. pg_collation Columns

列類型

描述

oid oid

行標(biāo)識(shí)符

collname name

排序規(guī)則名字(在每一個(gè)名字空間和編碼中唯一)

collnamespace oid (references pg_namespace.oid)

包含該排序規(guī)則的名字空間的OID

collowner oid (references pg_authid.oid)

排序規(guī)則的擁有者

collprovider char

排序規(guī)則的提供者:d = 數(shù)據(jù)庫默認(rèn),c = libc,i = icu

collisdeterministic bool

排序規(guī)則是確定性的嗎?

collencoding int4

該排序規(guī)則可應(yīng)用的編碼,或以-1表示它可用于任何編碼

collcollate name

該排序規(guī)則對(duì)象的LC_COLLATE

collctype name

該排序規(guī)則對(duì)象的LC_CTYPE

collversion text

排序規(guī)則的提供者相關(guān)的版本。這是在排序規(guī)則創(chuàng)建時(shí)記錄下來的,并且在使用排序規(guī)則時(shí)會(huì)被檢查以檢測可能導(dǎo)致數(shù)據(jù)損壞的排序規(guī)則定義的改變。


注意在這個(gè)目錄中的唯一鍵是(collname、 collencoding、 collnamespace), 不僅僅是(collnamecollnamespace)。 所有 collencoding不等于當(dāng)前數(shù)據(jù)庫編碼或-1的編碼規(guī)則通常都會(huì)被PostgreSQL忽略,且禁止創(chuàng)建和collencoding = -1的項(xiàng)重名的項(xiàng)。因此使用一個(gè)受限的SQL名字(schema.name)來標(biāo)識(shí)一個(gè)排序規(guī)則是足夠的,即使這根據(jù)目錄定義是不唯一的。以這種方式定義這個(gè)目錄的原因是 initdb會(huì)在集簇初始化時(shí)使用系統(tǒng)上所有可用的locale填充這個(gè)目錄,所以它必須能夠?yàn)樗锌赡茉诩刂惺褂玫木幋a保持項(xiàng)。

template0數(shù)據(jù)庫中,創(chuàng)建與數(shù)據(jù)庫編碼不匹配的編碼是有用的,因?yàn)樗鼈兛梢云ヅ浜竺鎻?code class="literal">template0克隆的數(shù)據(jù)庫的編碼。這在目前必須手動(dòng)完成。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)