在 Postgres 中有一个数据类型叫做bytea
Postgres 文档在这里:http ://www.postgresql.org/docs/9.0/static/datatype-binary.html
我无法理解何时会使用它——我也无法真正理解这种数据类型的用途。
我已经多次遇到这个词bytea
,并开始对自己想知道“似乎他们希望我理解这个......也许我应该找出它是什么。”
什么是它的简单定义以及我何时可能使用它的某些情况?
在 Postgres 中有一个数据类型叫做bytea
Postgres 文档在这里:http ://www.postgresql.org/docs/9.0/static/datatype-binary.html
我无法理解何时会使用它——我也无法真正理解这种数据类型的用途。
我已经多次遇到这个词bytea
,并开始对自己想知道“似乎他们希望我理解这个......也许我应该找出它是什么。”
什么是它的简单定义以及我何时可能使用它的某些情况?
我认为文档对bytea和text之间的区别相当清楚:
二进制字符串与字符串有两种区别。首先,二进制字符串特别允许存储值为零的八位位组和其他“不可打印”八位位组(通常是 32 到 126 范围之外的八位位组)。字符串不允许零八位字节,也不允许任何其他八位字节值和八位字节值序列根据数据库选择的字符集编码无效。其次,对二进制字符串的操作处理实际字节,而字符串的处理取决于区域设置。简而言之,二进制字符串适用于存储程序员认为是“原始字节”的数据,而字符串适用于存储文本。
http://www.postgresql.org/docs/9.0/static/datatype-binary.html
...它与内容是否为“文本”(取决于您应用于服务器配置和运行它的操作系统的区域设置和国际化设置)与“八位字节”数组( 8 位二进制值序列——通常称为“字节”)。
(术语“字节”和术语“八位字节”之间存在一些技术上的区别——因为从历史上看,一些平台和计算设备使用带有奇偶校验和/或停止位的“字节”,而术语“八位字节”总是意味着正好 8 -bits;一个用于阐明网络协议规范和文档的术语)。
VARBINARY
,相当于BYTEA
in Postgres
,可用于存储JWT
访问令牌。
create table oauth_access_token (
token_id VARCHAR(255),
token BYTEA,
.......
)