2010-10-07 10 views
15

Postgresql'de satırın karma kodunu almanın bir yolu var mı?Postgresql içinde bir satırın karma değerini bulma

Verileri son dışa aktarma işleminden sonra bazı değişiklikler olduğunda, son verilen veri satırları bir tabloda depolanabiliyorsa veriyi vermem gerekiyor, veriyi vermem gerekirse Tüm verilerin karma değerlerini ve sadece son ihracattan farklı bir karma değere sahip satırları dışa aktarın.

Postgresql kullanarak elde etmek mümkün mü?

Eğer

cevap

29

Cast sıra:

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

VEYA, daha kısa 'SELECT md5 (f :: text) FR – Jelen

3

alternatif bir yaklaşım, bir last_modified sütuna geçerli zaman damgası girin ediyorum ve ithalat işlemi çalıştırılırken sonra sadece bu sütuna dayalı sorgulama bir ON INSERT OR UPDATE trigger ayarlamak olacaktır ederiz. metin ve bir karma yapmak için md5 kullanmak

+0

Ben eski sistemde çalışıyorum edilir yüzleşiyorum sorun, veri/a ithalat veya eklenti yoluyla gelebilir nerede Tüm verilerde sayfaları ve son değiştirilmiş sütunları düzenlemek güvenilir değildir. Herhangi bir değişiklik olup olmadığını kontrol etmek için bir çeşit karma tekniği kontrol etmemin nedeni budur. –

+1

Bu yaklaşımla, veritabanı tetikleyicisi 'last_modified' süresinin belirlenmesi ve yazılması olur - istemciler bu tabloya veri koymaz. İstemciler bu sütunu bilmeyecekler ve yapmamalılar - veritabanınız bunu kendi başlarına yönetecekti. –