sql >> Databasteknik >  >> RDS >> Mysql

Hur låser man rad i mysql utan att blockera?

Du använder LOCK IN SHARE MODE som låser raden från UPDATE eller DELETE operationer, men låter raden läsas. Se denna dokumentation för mer information. En kortfattad från dokumentationen finns nedan.

Din fråga returnerar samma rad till alla processer/arbetare och de väntar helt enkelt på att det föregående låset släpps innan de sätter sitt eget lås på raden. För att uppnå den typ av lås du behöver, byt ut din SELECT ... LOCK IN SHARE MODE med SELECT ... FOR UPDATE .




  1. Varför returnerar transaction.wasCommitted() falskt?

  2. Exportera en hel SQLite-databas till en SQL-fil

  3. Parallel Go-tester utförda mot en PostgreSQL-databas som körs på Docker

  4. INFOGA med LIST i lagrad procedur