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

Transaksi eksklusif Laravel 4 dengan pembaruan dan pilih

Saya lupa mencoba mengunci tabel dan/atau melakukannya dalam transaksi, ada pola yang lebih baik untuk ini:

  • Buat token unik
  • Tetapkan token itu ke rekaman berikutnya yang tersedia
  • Baca baris mana yang mendapatkan token, dan proses

Dengan begitu Anda tidak memerlukan penguncian dan transaksi sama sekali (karena DB akan menetapkan token Anda HANYA ke SATU catatan yang tidak digunakan).

Kode semu:

$token = time(); //Only you have very low concurrency. Otherwise use something more unique, like a GUID or an identity value from a tokens table.

EXEC SQL: "UPDATE mytable SET token = $token WHERE token IS NULL LIMIT 1"

EXEC SQL: "SELECT id FROM mytable WHERE token = $token"

process($id);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah basis data Laravel 5

  2. JDBCExceptionReporter - Kesalahan SQL:0, SQLState:08001

  3. Pro dan Kontra nama tabel yang memiliki spasi

  4. menghubungkan ke wadah mysql komposisi buruh pelabuhan menolak akses tetapi buruh pelabuhan yang menjalankan gambar yang sama tidak

  5. Contoh cara menggunakan bind_result vs get_result