我的 PostgresSQL 数据库中有一个表person
,其中包含不同用户的数据。
我需要编写一个测试用例,确保某些例程确实修改了用户1的数据,并且不修改用户2的数据。
为此,我需要
a) 计算用户 1 和用户 2 的所有行的哈希码,
b) 然后执行被测操作,
c) 再次计算哈希码并
d) 比较来自步骤 a) 和 c) 的哈希码。
我找到了一种计算单行哈希码的方法:
SELECT md5(CAST((f.*)AS text))
FROM person f;
为了实现我的目标(找出用户 2 的行是否已更改),我需要执行如下查询:
SELECT user_id, SOME_AGGREGATE_FUNCTION(md5(CAST((f.*)AS text)))
FROM person f
GROUP BY user_id;
我可以使用什么聚合函数来计算一组行的哈希码?
注意:我只想知道用户 2 的任何行是否已更改。我不想知道,到底发生了什么变化。