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

Jsou řádky uzamčeny v pořadí v příkazu SELECT ... ORDER BY ... FOR UPDATE?

Řádky jsou uzamčeny v pořadí ORDER BY klauzule jak tomu bylo, když byla tabulka naskenována .

Dotaz je proveden a řádky uspořádány, poté PostgreSQL uzamkne řádky v pořadí. V podstatě ORDER BY proběhne před FOR UPDATE .

Nyní se může stát, že zamknutí řádku zablokuje kvůli zámkům drženým souběžnými transakcemi. Pokud se tak stane a my jsme u READ COMMITTED úroveň izolace, PostgreSQL čeká dokud nezíská zámek a pak načte aktuální verzi řádku, který uzamkne.

Pokud souběžná transakce změnila sloupce, které definují řazení, konečný výsledek nebude v pořadí definovaném ORDER BY .




  1. Zkopírujte data do nové tabulky v MySQL

  2. FULLTEXT MySQL nebude fungovat s více než jedním polem

  3. Při ukládání databáze PostgreSQL vyloučit definice funkcí

  4. Soubor nenalezen Výjimka při pokusu o nahrání souboru na server xampp z aplikace pro Android