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

Bagaimana melakukan kunci tabel/baris di Django

Django tidak secara eksplisit menyediakan API untuk melakukan penguncian tabel. Dalam pengalaman saya, kode yang dirancang dengan baik jarang perlu mengunci seluruh tabel, dan sebagian besar masalah konkurensi dapat diselesaikan dengan penguncian tingkat baris. Ini adalah upaya terakhir:itu tidak menyelesaikan konkurensi, itu hanya membunuh segala upaya konkurensi.

Jika Anda benar-benar membutuhkan penguncian tingkat tabel, Anda dapat menggunakan kursor dan mengeksekusi pernyataan SQL mentah:

from django.db import connection

with connection.cursor() as cursor:
    cursor.execute("LOCK TABLES %s READ", [tablename])
    try:
        ...
    finally:
        cursor.execute("UNLOCK TABLES;")


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Struktur MySQL untuk terjemahan

  2. Jetty 7 + Konfigurasi MySQL [java.lang.ClassNotFoundException:org.mortbay.jetty.webapp.WebAppContext]

  3. Pembaruan Flask-SQLAlchemy membuat rekor baru di MySQL

  4. Memperbaiki batas waktu tunggu Lock terlampaui; coba mulai ulang transaksi untuk 'tabel Mysql macet?

  5. Cegah kenaikan otomatis InnoDB PADA KUNCI DUPLICATE