sql >> Databasteknik >  >> RDS >> Mysql

Hur man utför tabell-/radlås i Django

Django tillhandahåller inte uttryckligen ett API för att utföra tabelllåsning. Enligt min erfarenhet behöver väldesignad kod sällan låsa en hel tabell, och de flesta samtidighetsproblem kan lösas med radnivålåsning. Det är ett sista försök:det löser inte samtidighet, det dödar helt enkelt alla försök till samtidighet.

Om du verkligen behöver låsning på tabellnivå kan du använda en markör och köra råa SQL-satser:

from django.db import connection

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


  1. Hur får man det aktuella databastransaktions-ID med JDBC eller Hibernate?

  2. Python:bästa praxis och säkraste sättet att ansluta till MySQL och utföra frågor

  3. django test app-fel - Fick ett fel när testdatabasen skapades:behörighet nekades att skapa databas

  4. percentiler från histogramdata