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

Coba lagi di kebuntuan untuk MySQL / SQLAlchemy

Anda tidak dapat melakukannya dengan Session dari luar. Session harus mendukung ini secara internal. Ini akan melibatkan penghematan banyak negara pribadi, jadi ini mungkin tidak sepadan dengan waktu Anda.

Saya benar-benar membuang sebagian besar barang ORM demi antarmuka SQLAlchemy Core tingkat yang lebih rendah. Dengan menggunakan itu (atau bahkan antarmuka dbapi apa pun), Anda dapat dengan mudah menggunakan retry_on_deadlock_decorator Anda dekorator (lihat pertanyaan di atas) untuk membuat db.execute retry-aware pembungkus.

 @retry_on_deadlock_decorator
 def deadlock_safe_execute(db, stmt, *args, **kw):
     return db.execute(stmt, *args, **kw)

Dan bukannya

 db.execute("UPDATE users SET active=0")

kamu bisa

 deadlock_safe_execute(db, "UPDATE users SET active=0")

yang akan mencoba lagi secara otomatis jika terjadi deadlock.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sisipan batch EclipseLink sangat sangat lambat

  2. PHP/mySQL - cara mengambil baris bersarang ke dalam array multidimensi

  3. Temukan gaji maks dan maks kedua untuk tabel karyawan MySQL

  4. Cara memasukkan objek (lebih dari 10 properti) ke mysql melalui mybatis berdasarkan anotasi tanpa mencantumkan semua properti

  5. Keluar dari baris perintah MYSQL melalui Bash Scripting