"Vybrat... pro aktualizaci" je v režimu spánku podporováno prostřednictvím Režim uzamčení.UPGRADE který můžete nastavit například v NamedQuery .
Ale používání aplikačního/manuálního zamykání řádků tabulky má několik nevýhod (zejména když se připojení k databázi přeruší v polovině transakce) a vaše aktualizační procedura se bez něj obejde:
- Zahájit transakci.
- aktualizovat sadu tabulky state='PENDING', server_id=1, kde state='IN PROGRESS';
- Potvrdit transakci
- vyberte z tabulky, kde state='PENDING' a server_id=1;
- [záznamy o zpracování]
Každý server musí mít jedinečné číslo, aby to fungovalo, ale bude méně náchylné k chybám a necháte DBMS dělat to, v čem má být dobrý:izolace (viz KYSELINA ).