PYTHON Tutorial

Transaktioner i SQL

Vad är en transaktion?

En transaktion är ett antal SQL-satser som behandlas som en enda enhet. Antingen genomförs alla satser eller så genomförs ingen av dem.

Nyckelbegrepp

  • Transaktion: En grupp SQL-satser som behandlas som en enda enhet.
  • Commit: Förbinder ändringarna från transaktionen till databasen permanent.
  • Rollback: Ångrar ändringarna från transaktionen och återställer databasen till sitt tidigare tillstånd.
  • ACID-egenskaper: Atomicity, Consistency, Isolation, Durability (Atomaritet, Konsistens, Isolering, Varaktighet).

Steg för att hantera transaktioner

  • Börja en transaktion med BEGIN.
  • Utför SQL-satser inom transaktionen.
  • Förbind ändringarna med COMMIT eller ångra dem med ROLLBACK.

Python-exempel:

Äkerställa dataintegritet med hjälp av transaktioner i MySQL

import mysql.connector

# Anslut till databasen
connection = mysql.connector.connect(
    host="localhost",
    user="root",
    password="",
    database="db_name"
)

# Skapa en markör för att utföra SQL-satser
cursor = connection.cursor()

# Börja en transaktion
cursor.execute("BEGIN")

# Utför SQL-satser inom transaktionen
cursor.execute("INSERT INTO users (name) VALUES ('John')")
cursor.execute("INSERT INTO users (name) VALUES ('Jane')")

try:
    # Förbind ändringarna
    connection.commit()
    print("Transaktionen genomfördes framgångsrikt.")
except:
    # Ångra ändringarna
    connection.rollback()
    print("Transaktionen avbröts.")

# Stäng anslutningen och markören
cursor.close()
connection.close()