Pytanie Znalezienie wartości mieszania wiersza w postgresql


Czy istnieje sposób, aby uzyskać kod skrótu z wiersza w postgresql?

Potrzebuję wyeksportować niektóre dane tylko wtedy, gdy są jakieś zmiany w danych po ostatnim eksporcie, ostatnie wyeksportowane wiersze danych mogą być przechowywane w tabeli, kiedy znowu muszę wyeksportować dane mogę uzyskać wartości mieszania wszystkich dane i eksportuj tylko te wiersze, które mają inną wartość skrótu niż ostatni eksport.

Czy można osiągnąć postgresql?

Dziękuję Ci


17
2017-10-07 03:39


pochodzenie




Odpowiedzi:


Rzuć wiersz na tekst i użyj md5, aby utworzyć skrót:

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

33
2017-10-07 06:41



LUB krótszy SELECT md5(f::text) FROM f - Jelen


Alternatywnym podejściem byłoby ustawienie ON INSERT OR UPDATE cyngiel która wstawiłaby bieżący znacznik czasu do formatu a last_modified kolumnę, a następnie po prostu zapytaj na podstawie tej kolumny, gdy trwa proces importowania.


3
2017-10-07 03:43



Problem, z którym się borykam, polega na tym, że pracuję nad starym systemem, w którym dane mogą pochodzić z importu lub przez strony dodawania / edycji, a ostatnia modyfikowana kolumna na wszystkich danych nie jest niezawodna. To jest powód, dla którego sprawdzam jakąś technikę mieszania, aby sprawdzić, czy nie ma żadnych zmian. - Arun P Johny
Przy takim podejściu wyzwalacz bazy danych będzie określał i zapisywał last_modified czas - nie klienci umieszczają dane w tej tabeli. Klienci nie będą wiedzieli o tej kolumnie, a nie powinni - Twoja baza danych sam by nią zarządzała. - matt b