postgresql - 在 PostgreSQL 中将 HEX 作为 BYTEA 插入是否有充分的理由?

标签 postgresql postgresql-9.6

我找到了 this来自文档:

... binary strings specifically allow storing octets of value zero and ... octets outside the range 32 to 126 ...

对我来说,这听起来好像没有理由使用 BYTEA 来存储 HEX 值?仍然有很多人似乎将 BYTEA 用于某事。 like这个:

013d7d16d7ad4fefb61bd95b765c8ceb
007687fc64b746569616414b78c81ef1

这样做有充分的理由吗?

最佳答案

有三个很好的理由:

  1. 它将需要更少的存储空间,因为两个十六进制数字存储为一个字节。

  2. 它会自动检查值的正确性:

    SELECT decode('0102ABCDNONSENSE', 'hex');
    ERROR:  invalid hexadecimal digit: "N"
    
  3. 如果您的 API 支持,您可以存储和检索二进制数据,而无需将它们与文本进行相互转换。

关于postgresql - 在 PostgreSQL 中将 HEX 作为 BYTEA 插入是否有充分的理由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52319342/

相关文章:

sql - 如果表存在则执行 select 语句

database - postgresql 函数创建给出语法错误

.net - 如何从 kubernetes 部署配置文件中的 helm 获取运行时设置以覆盖 asp.net 中的 appsettings

postgresql - 在 spring boot 中使用 JDBC 和 spring data jpa 为我的 session spring 创建单独的数据源

database - 为什么我不知道 PostGIS 是否正确安装在我的 PostgreSQL 数据库上?

json - Postgres : Create jsonb object with given set of keys and a default value

sql - 函数参数anyelement,PostgreSQL bug?

postgresql - 使用 java 和 Postgres DB 绑定(bind)的 Azure 函数

sql - 将一个表的行转换为 json 并将其添加到另一个表 PostgreSQL

mysql - 多个外来的 SQL 问题