【postgresql】数据类型bpchar,varchar,char,text之间的区别与联系
背景
在使用postgresql,及实际开发及数据整理过程中,常遇见来自不同源端或不同开发人员的数据表,其字段格式相同但却有少许不一致,如text ,bpchar,varchar,char等等格式,在进行数据整合时常需要一个个去检查字段格式并做出调整 下面整理了下面几种格式的区别:
- text
- 这种格式起源与MySQL数据库,当时是为了存储unicode型的长字符串,在postgresql数据库里边也有这个字段类型,现在text和varchar几乎无性能差别,区别仅在于存储结构的不同
- char
- 定长字符串,如定义char(16),则实际字符串若超过16位则报error,若少于16位,则按字符串原样保存不足部分用空格填充,存储长度为16位
- varchar
- 不定长字符串,如定义varchar(16),则实际字符串若超过16位则报error,若少于16位,则按原样保存且按实际字符长度保存
- bpchar
text | 这种格式起源与MySQL数据库,当时是为了存储unicode型的长字符串,在postgresql数据库里边也有这个字段类型,现在text和varchar几乎无性能差别,区别仅在于存储结构的不同 |
---|
char | 定长字符串,如定义char(16),则实际字符串若超过16位则报error,若少于16位,则按字符串原样保存不足部分用空格填充,存储长度为16位 | varchar | 不定长字符串,如定义varchar(16),则实际字符串若超过16位则报error,若少于16位,则按原样保存且按实际字符长度保存 | bpchar | 无具体含义,是varchar类型的别名 |
|