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

Správný způsob výběru a aktualizace SQL

Nejprve minimálně měli byste provádět SELECT ... FOR UPDATE takže zamknete řádky proti ostatním SELECT ... FOR [SHARE|UPDATE] přístup. Musíte to udělat v rámci transakce a podržet tuto transakci, dokud neaktualizujete poslední řádek a commit .

Řádky, které SELECT ... FOR UPDATE ne uzamčeno proti normálnímu SELECT; jsou stále čitelné pro ostatní transakce, které nepoužívají FOR UPDATE nebo FOR SHARE .

Ještě lépe, zkuste to celé přeformulovat jako UPDATE ... FROM nebo jiná operace založená na sadě, kde veškerou práci provádíte v jediném dotazu. Obecně bude fungovat výrazně lépe než SELECT ... FOR UPDATE následovaný streamem UPDATE s.




  1. Jak najdu duplikáty ve více sloupcích?

  2. Výjimka nulového ukazatele při volání getReadableDatabase()

  3. Rozbalovací nabídka – PHP Ajax MySQL

  4. Mám více dotazů, které chci sloučit všechny výsledky dotazu do stejné tabulky