sql >> Database teknologi >  >> RDS >> PostgreSQL

Indstilling af tidsstempel i transaktionen

Denne slags spørgsmål kommer op fra tid til anden - så vidt jeg kan se, er den eneste fuldstændig pålidelige måde at gøre det, du har beskrevet, gemme opdaterede ID'er i en eller anden tabel i den første proces og markere dem som behandlet i den anden. Grundlæggende er dette at genopfinde en beskedkø i databasen. Du har ganske godt beskrevet, hvordan en naiv løsning vil savne opdateringer.

At få importprocesmærket opdaterede rækker kan gøres ganske nemt eller endda implementeres ved hjælp af triggere på din datatabel. Hvis du kun har én forbrugerproces, skal den kun delete from updated_item returning item_id for at få en liste over opdateringer. Det lyder som om det er meget mere kompliceret, men IMHO er det egentlig ikke. Funktioner som at kunne overvåge, hvor stort efterslæbet er, dukker også op gratis.



  1. PostgreSQL - vælg antal(*) for rækker, hvor en betingelse gælder

  2. MySQL - Opdater tabelrækker uden at låse rækkerne

  3. Hvordan opretter man tabel i Oracle SQL Developer?

  4. Valg af tabeldata med PDO-udsagn