PostgreSQL之 区域支持

本文介绍了PostgreSQL中的区域支持概念,包括字母表、排序规则及数字格式的文化偏好设置。探讨了如何在创建数据库集群时初始化区域属性,以及这些属性如何影响数据库的操作。同时,还讨论了与区域设置相关的操作系统标准(如ANSIC和POSIX)及其在Linux环境下的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:瀚高PG实验室 (Highgo PG Lab)

 

   区域支持指的是应用遵守文化偏好的问题,包括字母表、排序、数字格式等;

PG使用服务器操作系统提供的标准 ISO C 和POSIX的区域机制;

PG区域支持是在使用initdb创建一个数据库集簇时自动被初始化的;

默认情况下,initdb将会按照它的执行环境的区域设置初始化数据库集簇 ;

可以选择initdb数据库集群是指定区域属性。

注:ANSI C:这一标准是 ANSI(美国国家标准局)于 1989 年制定的 C 语言标准。 后来被 ISO(国际标准化组织)接受为标准,因此也称为 ISO C。

POSIX:该标准最初由 IEEE 开发的标准族,部分已经被 ISO 接受为国际标准。POSIX.1 和 POSIX.2 分别定义了 POSIX 兼容操作系统的 C 语言系统接口 以及 shell 和工具标准。

区域

由于国家和本地习惯的不同,在处理文字、日期、数字、货币格式等问题

都会有所不同,计算机中“区域(Locale)”就是用来解决这个问题的。

区域名的形式

language_territory[.codeset]

 

特殊的区域(C或者POSIX)

locale“C”或“POSIX”是一个可移植的语言环境

它的LC_CTYPE部分对应于7位ASCII字符集

Linux区域设置

通过环境变量(LC_ALL/LC_*/LANG)设置

本地语言的支持依赖于/etc/locale.conf

环境变量的优先级:LC_ALL > LC_* > LANG

其它相关指令

locale     #当前系统环境的区域设置

locale –a  #获得当前 Glibc 支持的本地字符集

PG数据库固有的区域属性

包括以下三种属性,并且数据库创建后不可变更

 可通过psql的”\l”或系统表pg_database查看

postgresql.conf中的区域参数

可通过SHOW命令或系统表pg_settings查看

可通过set命令修改当前会话的参数

 

可通过pg_ctl reload命令在线全局变更

initdb时可通过参数指定数据库集群的缺省区域和编码,如未明确指定区域和编码,initdb通过OS运行环境判断区域和编码。

 

创建数据库时默认继承数据库模板template1的区域设置

Encoding

Collate

Ctype

也可以指定其它的区域设置(必须使用template0作为模板)

字符编码,LC_COLLATE和LC_CTYPE在数据库创建后不能变更

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值