2010-10-07 12 views
15

¿Hay alguna forma de obtener el código hash de una fila en postgresql?Encontrar el valor hash de una fila en postgresql

Necesito exportar algunos datos solo si hay algunos cambios en los datos después de la última exportación, las últimas filas de datos exportados se pueden almacenar en una tabla, cuando nuevamente necesito exportar los datos puedo obtener el valores hash de todos los datos y exportar solo aquellas filas que tienen un valor hash diferente al de la última exportación.

¿Es posible lograr el uso de postgresql?

Gracias

Respuesta

29

moldeada la fila de texto y utilizar MD5 para hacer un hash:

SELECT 
    md5(CAST((f.*)AS text)) 
FROM 
    foo f; 
+4

O, más corto 'SELECCIONE md5 (f :: texto) FROM f' – Jelen

3

Un enfoque alternativo sería establecer un ON INSERT OR UPDATE trigger que insertar la fecha y hora actual en una columna last_modified, y luego simplemente consultar la base de esta columna cuando el proceso de importación se ejecuta.

+0

El problema que estoy enfrentando es que estoy trabajando en un sistema heredado, donde los datos pueden provenir de una importación o por medio de adición/editar páginas y la última columna modificada en todos los datos no es confiable. Esa es la razón por la que estoy buscando algún tipo de técnica hash para verificar cualquier cambio. –

+1

Con este enfoque, el activador de la base de datos determinaría y escribiría la hora 'last_modified', no los clientes que ponen datos en esta tabla. Los clientes no sabrán sobre esta columna, y no deberían: su base de datos la gestionaría por sí misma. –

Cuestiones relacionadas