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

atur sesi dalam objek sesi SQLAlchemy

Gunakan acara sesi untuk mengeksekusi pernyataan SQL arbitrer pada setiap transaksi baru. Anda juga dapat menggunakan acara pada tingkat koneksi, itu tergantung pada kasus penggunaan Anda.

Inilah cara saya melakukannya di tingkat sesi:

Session = sessionmaker()
@event.listens_for(Session, 'before_flush')
def set_max_heap_table_size(session, transaction, connection):
    session.execute('SET max_heap_table_size = 1024 * 1024 * 64')

Jika Anda tidak yakin cara mana yang cocok untuk Anda, coba saja, tulis beberapa kasus uji, dan cari tahu apakah cara itu cocok untuk Anda.

Mungkin ada satu peringatan (tidak yakin):Karena koneksi tidak terputus tetapi dikembalikan ke kumpulan, pengaturan mungkin tetap ada. Dalam hal ini Anda mungkin juga ingin melampirkan sesuatu untuk mengembalikan default, mis. pada after_flush peristiwa. Saya tidak sepenuhnya yakin dengan yang satu ini, Anda mungkin ingin bereksperimen. Jika ini tidak perlu, Anda juga dapat menggunakan after_begin acara, tetapi tidak ada before_close yang sebenarnya peristiwa yang membungkusnya, sehingga dapat menimbulkan masalah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Urutan Zend_Db berdasarkan nilai bidang

  2. Menemukan pola bilangan yang mirip dalam tabel

  3. Daftar nama eksternal yang efisien dengan MySQL dan ejabberd

  4. MySQL - ID berikutnya / sebelumnya dengan bersepeda

  5. Bagaimana cara melakukan backup di MySQL?