sql >> Database teknologi >  >> RDS >> Mysql

Sådan udføres bord-/rækkelåse i Django

Django leverer ikke eksplicit en API til at udføre tabellåsning. Efter min erfaring behøver veldesignet kode sjældent at låse en hel tabel, og de fleste samtidighedsproblemer kan løses med række-niveau-låsning. Det er en sidste indsats:det løser ikke samtidighed, det dræber simpelthen ethvert forsøg på samtidighed.

Hvis du virkelig har brug for låsning på tabelniveau, kan du bruge en markør og udføre rå SQL-sætninger:

from django.db import connection

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


  1. MySQL slet række fra flere tabeller

  2. Hvordan finder du diskstørrelsen på en Postgres / PostgreSQL-tabel og dens indekser

  3. Mysql funktionskald

  4. Kan en INNER JOIN tilbyde bedre ydeevne end EKSISTERER