在 PostgreSQL 中将 HEX 作为 BYTEA 插入是否有充分的理由?
Is there a good reason to insert HEX as BYTEA in PostgreSQL?
我从文档中找到 this:
... binary strings specifically allow storing octets of value zero and
... octets outside the range 32 to 126 ...
对我来说,似乎没有理由使用 BYTEA 来存储 HEX 值?仍然有很多人似乎将 BYTEA 用于某事。 like 这个:
013d7d16d7ad4fefb61bd95b765c8ceb
007687fc64b746569616414b78c81ef1
这样做有充分的理由吗?
三个很好的理由:
它将需要更少的存储空间space,因为两个十六进制数字存储为一个字节。
它会自动检查值的正确性:
SELECT decode('0102ABCDNONSENSE', 'hex');
ERROR: invalid hexadecimal digit: "N"
如果您的 API 支持,您可以存储和检索二进制数据,而无需将它们与文本进行转换。
我从文档中找到 this:
... binary strings specifically allow storing octets of value zero and ... octets outside the range 32 to 126 ...
对我来说,似乎没有理由使用 BYTEA 来存储 HEX 值?仍然有很多人似乎将 BYTEA 用于某事。 like 这个:
013d7d16d7ad4fefb61bd95b765c8ceb
007687fc64b746569616414b78c81ef1
这样做有充分的理由吗?
三个很好的理由:
它将需要更少的存储空间space,因为两个十六进制数字存储为一个字节。
它会自动检查值的正确性:
SELECT decode('0102ABCDNONSENSE', 'hex'); ERROR: invalid hexadecimal digit: "N"
如果您的 API 支持,您可以存储和检索二进制数据,而无需将它们与文本进行转换。