sql >> Databáze >  >> RDS >> PostgreSQL

Nastavení časového razítka uvnitř transakce

Toto druh otázky se čas od času objeví-- pokud mohu říci, jediný zcela spolehlivý způsob je udělat to, co jste popsali, uložit aktualizovaná ID do nějaké tabulky v prvním procesu a označit je jako zpracovaná ve druhém. V podstatě se jedná o znovuobjevení fronty zpráv v databázi. Docela dobře jste popsali, jak naivnímu řešení chybějí aktualizace.

Aktualizace řádků v procesu importu lze provést poměrně snadno nebo dokonce implementovat pomocí spouštěčů ve vaší datové tabulce. Pokud máte pouze jeden spotřebitelský proces, pak vše, co musíte udělat, je delete from updated_item returning item_id získat seznam aktualizací. Zní to, že je to mnohem složitější, ale IMHO to tak není, opravdu. Funkce, jako je možnost sledovat, jak velké jsou nevyřízené položky, se také objevují zdarma.



  1. Přidejte 2 měsíce k aktuálnímu časovému razítku

  2. Vybrat duplikáty z jednoho řádku?

  3. Jak nastavit pole databáze s možnou hodnotou Null na hodnotu NULL pomocí typormu?

  4. Upřesnění výsledků vyhledávání na základě filtrů