PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Редовете заключени ли са по ред в оператор SELECT ... ORDER BY ... FOR UPDATE?

Редовете са заключени в реда на ORDER BY клауза както беше, когато таблицата беше сканирана .

Заявката се изпълнява и редовете се подреждат, след което PostgreSQL заключва редовете по ред. По същество ORDER BY се случва преди FOR UPDATE .

Сега може да се случи, че заключването на ред блокира поради заключвания, държани от едновременни транзакции. Ако това се случи, и ние сме на READ COMMITTED ниво на изолация, PostgreSQL изчаква докато може да получи заключването и след това извлича текущата версия на реда, който заключва.

Ако едновременната транзакция промени колоните, които определят подреждането, крайният резултат няма да бъде в реда, определен от ORDER BY .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на заявка, която връща id, ако условието съответства в редове от две таблици

  2. променете базата данни (postgresql) в python, използвайки psycopg2 динамично

  3. Как да получите броя на INNER присъединяването и броя на броя на всички елементи?

  4. Как да ограничите максималната дължина на дисплея на колона в PostgreSQL

  5. Как да използвате psycopg2 за извличане на определена стойност на ключ от таблица postgres, която има двойки ключ-стойност