【发布时间】:2018-11-07 00:35:48
【问题描述】:
我正在尝试对行的更改检测进行校验和,因此我可以比较 2 个表。我过去做过的一种方法是串联所有列,然后进行哈希处理。如何连接所有列?
SELECT concat(*) form TABLE;
没用
我也尝试了
的 PostgreSQL 变体从 sandbox.abs_frmt r 中选择 r::text;
【问题讨论】:
-
这不是我要找的
标签: redhat-datavirt
我正在尝试对行的更改检测进行校验和,因此我可以比较 2 个表。我过去做过的一种方法是串联所有列,然后进行哈希处理。如何连接所有列?
SELECT concat(*) form TABLE;
没用
我也尝试了
的 PostgreSQL 变体从 sandbox.abs_frmt r 中选择 r::text;
【问题讨论】:
标签: redhat-datavirt
默认情况下,字符串长度是有限的,因此最好对每列进行哈希处理并使用函数来组合哈希。
如果您不关心连接值的大小,最接近的内置逻辑是使用 jsonArray、jsonObject 或 xmlforest 来创建表示行的单个值 - jsonArray 可能更可取它只是值,没有名字:
select sha2_256(cast(jsonArray(col1, col2, ...) as string)),... from tbl;
【讨论】: