在postgresql中,有没有一种方法可以获取行的哈希码?
我需要仅在数据自上次导出后发生更改时导出某些数据,最后导出的数据行可以存储在一个表中,当再次需要导出数据时,我可以获取所有数据的哈希值,并仅导出具有与上次导出不同哈希值的行。
是否可能使用postgresql实现此功能?
谢谢
在postgresql中,有没有一种方法可以获取行的哈希码?
我需要仅在数据自上次导出后发生更改时导出某些数据,最后导出的数据行可以存储在一个表中,当再次需要导出数据时,我可以获取所有数据的哈希值,并仅导出具有与上次导出不同哈希值的行。
是否可能使用postgresql实现此功能?
谢谢
将行转换为文本,然后使用md5生成哈希值:
SELECT
md5(CAST((f.*)AS text))
FROM
foo f;
另一种方法是设置一个ON INSERT OR UPDATE
触发器,将当前时间戳插入last_modified
列中,然后在导入过程运行时仅基于此列进行查询。
SELECT md5(f::text) FROM f
意思是从f
表中选择数据并将其转换为文本格式,然后计算其 MD5 哈希值。 - Jelen'' || '' || 'a' = 'a' || '' || ''
。最好使用md5(row(col_1,col_2,col_2)::text)
。 - cstork