Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

đặt phiên trong một đối tượng phiên SQLAlchemy

Sử dụng sự kiện phiên để thực hiện một câu lệnh SQL tùy ý trên mỗi giao dịch mới. Bạn cũng có thể sử dụng các sự kiện ở cấp độ kết nối, nó phụ thuộc vào trường hợp sử dụng của bạn.

Đây là cách tôi sẽ làm điều đó ở cấp phiên:

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')

Nếu bạn không chắc cách nào phù hợp với mình, chỉ cần thử chúng, viết một số trường hợp thử nghiệm và tìm hiểu xem cách đó có phù hợp với bạn không.

Có thể có một cảnh báo (không chắc chắn):Vì kết nối không bị ngắt nhưng được quay trở lại nhóm, cài đặt có thể vẫn tồn tại. Trong trường hợp này, bạn cũng có thể muốn đính kèm thứ gì đó để khôi phục mặc định, ví dụ:trên after_flush biến cố. Tôi không hoàn toàn chắc chắn về điều này, bạn có thể muốn thử nghiệm. Nếu điều này là không cần thiết, bạn cũng có thể sử dụng after_begin sự kiện, nhưng không có before_close thực sự kiện bao bọc nó, vì vậy nó có thể tạo ra sự cố.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng htmlspecialchars () trước khi chèn vào MySQL có tốt không?

  2. Cấu hình mysql dừng ở máy chủ khởi động

  3. MySQL cách tốt để chèn một hàng nếu không tìm thấy hoặc cập nhật hàng nếu tìm thấy

  4. Cách hàm WEIGHT_STRING () hoạt động trong MySQL

  5. Có thể có một tham số mặc định cho một thủ tục được lưu trữ mysql không?