Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kunci baris pilih MySQL hingga UPDATE dijalankan?

Letakkan transaksi di sekitar dua kueri, dan gunakan FOR UPDATE pilihan di SELECT query untuk mengunci baris yang diperiksa. Koneksi lain apa pun yang mencoba membaca baris itu akan ditangguhkan hingga transaksi dilakukan.

Pastikan Anda memiliki indeks pada kolom yang Anda uji di WHERE klausa, sehingga tidak perlu melakukan pemindaian dan mengunci semua baris yang diperiksa sebelum menemukan yang Anda inginkan.

START TRANSACTION;

SELECT @id := `id`,`item` 
FROM `queue_items` 
WHERE `processed_at` IS NULL AND `completed_at` IS NULL 
ORDER BY `id` ASC 
LIMIT 1
FOR UPDATE;

UPDATE `queue_items` SET `processed_at` = @processedAt WHERE `id` = @id

COMMIT;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memilih jumlah nilai yang dikelompokkan berdasarkan rentang

  2. Cara memasukkan array data ke mysql menggunakan php

  3. PHP MySQL Yii - database membaca bukan menulis

  4. Host server tidak dikenal PHP MySql

  5. Impor data dari file Microsoft SQL (.MDF) ke MySQL