SQLite -Transaktionen

SQLite -Transaktionen
„Transaktionen sind logisch organisierte Blöcke oder Arbeitssequenzen, die manuell oder mechanisch von einem DBMS durchgeführt werden können. Wenn Sie Daten aus der Tabelle erstellen, ändern oder entfernen, führen Sie Transaktionen auf der Tabelle durch. Die Steuerung von Transaktionen ist entscheidend für die Aufrechterhaltung der Datenintegrität und für die Behandlung von Datenbankproblemen.

In SQLITE ist eine Transaktion eine Gruppe von T-SQL-Befehlen, die als eindeutiger T-SQL-Befehl ausgeführt werden. Wenn bei der Ausführung dieser SQLite -Befehle ein Fehler auftritt, wird die Transaktion in ihrer Gesamtheit zurückgerollt. Im Allgemeinen befindet sich SQLite im automatischen Befehlsmodus, was bedeutet, dass es automatisch eine Transaktion mit jedem Befehl erstellt, sie verarbeitet und die Änderungen an der Datenbank begeht.

In diesem Artikel werden wir demonstrieren, wie die SQLite -Transaktion implementiert wird, um die Integrität und Zuverlässigkeit der Daten zu gewährleisten.”

Eigenschaften der SQLite -Transaktion

SQLite ist eine Transaktionsdatenbank, was bedeutet, dass alle Aktualisierungen und Suchvorgänge atomar, konsistent, isoliert und langlebig (Säure) sind. Die vier unten angegebenen Standardmerkmale, die üblicherweise als Säure abgekürzt werden, sind bei Transaktionen vorhanden.

Atomizität: Ein einzelner Schritt des Prozesses muss durch eine Atomtransaktion durchgeführt werden. Es bedeutet, dass eine Modifikation nicht in kleinere Komponenten unterteilt werden kann. Entweder wird die vollständige Transaktion ausgeführt oder nicht, wenn sich eine Transaktion im Commit -Modus befindet.

Konsistenz: Transaktionen müssen garantieren, dass die Datenbank von einem legitimen Zustand in den nächsten geändert wird. Die Datenbank wird inkonsistent, wenn eine Transaktion einen Befehl zum Aktualisieren von Daten initiiert und ausführt. Die Datenbank muss jedoch konsistent bleiben, wenn Commit und Rollback für die Transaktionen durchgeführt werden.

Isolation: Die ausstehende Transaktion der Sitzung muss von anderen Sitzungen getrennt werden. Wenn eine Sitzung eine Transaktion initiiert und den Befehl einfügen oder aktualisieren, um Daten zu ändern, sind die Änderungen nur für den aktuellen Vorgang und nicht für andere zugegriffen. Die Änderungen anderer Benutzer nach Beginn der Transaktion dagegen sollten dem aktuellen Benutzer niemals offensichtlich sein.

Haltbarkeit: Wenn eine Transaktion ordnungsgemäß festgelegt ist, müssen die Änderungen in der Datenbank im Falle eines Stromausfalls oder eines Programmabsturzes dauerhaft sein. Das Update sollte nicht bestehen bleiben, wenn das Programm zuerst endet, bevor die Transaktion begangen wird.

So führen Sie Transaktionen in SQLite durch?

Nehmen wir an, wir möchten solche Transaktionen regulieren, um die Datenkonsistenz beizubehalten und Datenbankfehler zu verarbeiten. Wir können den Auto-Commit-Modus stoppen und die Transaktionen ausdrücklich auf unseren Anforderungen ausdrücklich initiieren, indem wir die folgenden Anweisungen verwenden.

  • START: Dies ist der Punkt, an dem die Transaktion begonnen wird.
  • BEGEHEN: Mit dieser Terminologie in SQLite werden wir die Transaktion begehen, was bedeutet, dass alle Änderungen an der Datenbank gespeichert werden.
  • Rollback: Die Transaktion als Ganzes wird umgekehrt.

Beachten Sie, dass nur die DML -Operationen Anweisungen zur Transaktionsregelung einfügen, aktualisieren und löschen können. Sie können nicht zum Extrahieren von Tabellen verwendet werden, da die Datenbank diese Vorgänge umgehend begeht.

Erstellen von SQLite -Tabellen für die Durchführung von Transaktionen

Um Transaktionen durchzuführen, müssen wir zunächst eine Tabelle erstellen. In der Abbildung können Sie feststellen, dass wir eine Tabelle mit dem Namen „Person_Accounts“ erstellt haben.Die Tabelle wird mit den vier Spalten als Person_ID, Person_Name, Account_Number und das Account_Balance mit ihren Datentypen angegeben.

TABLE PERSONAL_ACTACTS CREATE (
Person_id int Primärschlüssel ,
Person_Name char (10) ,
Account_Number int ,
Account_Balance Float
);

Hier haben wir einen Datensatz mit dem Befehl SQLite Insert eingefügt.

Einfügen in person_accounts Werte (1, 'ayat', 171636460, 5000);
In person_accounts Werte einfügen (2, 'Muneeb', 673201984, 8000);
Einfügen in person_accounts Werte (3, 'wahaj', 112603502, 4000);
Einfügen in person_accounts Werte (4, 'maya', 501738449, 7500);

Die Tabelle ist im Tabellenformat wie folgt angezeigt:

Beispiel 1: Führen Sie die Transaktion mit dem Befehl start in SQLite durch

Die Transaktion beginnen oder der Befehl begin kann verwendet werden, um Transaktionen zu starten. Wenn jedoch die Datenbank beendet oder ein Fehler auftritt, wird eine Transaktion zurückgelegt.

Zunächst haben wir eine Beginn -Terminologie mit dem Transaktionsbegriff aufgenommen. Anschließend haben wir den Befehl update, der in der Spalte Account_Balance arbeitet, in der Person_id gleich mit der Person_id gleich „4“ ist "2" gleich "2" ist. Da wir eine Commit -Anweisung erteilt haben, endet die Transaktion hier.

Transaktion beginnen;
Aktualisieren Sie Person_Accounts
Setzen Sie Account_balance = Account_Balance - 1000
Wo Person_id = 2;
Aktualisieren Sie Person_Accounts
Setzen Sie Account_Balance = Account_Balance + 500
Wo Person_id = 4;
BEGEHEN;

Die Übersetzung wird erfolgreich auf der Tabelle "Person_Accounts" durchgeführt, und das Feld "Account_Balance" wird auf der angegebenen Person_ID aktualisiert.

Beispiel 2: Führen Sie die Transaktion im Commit -Befehl in SQLite durch

Der Commit -Befehl ist ein Transaktionsbefehl, der Änderungen an der Datenbank speichert, die durch eine Transaktion ausgelöst wird. Der Befehl des Komits bewahrt alle Datenbanktransaktionen seit dem vorherigen Commit- oder Rollback -Anweisungen.

Im folgenden Beispiel haben wir den ersten Start der Transaktion mit dem Begriff Beginn Transaction. Danach haben wir den Befehl Einfügen, der einen neuen Datensatz in der Tabelle „Person_Accounts“ einfügt.Am Ende haben wir einen Commit -Befehl gegeben, der die Transaktion hier endet und die Änderung in der angegebenen Tabelle speichert.

Transaktion beginnen;
In person_accounts einfügen (Person_ID, Person_Name, Account_Number, Account_Balance)
Werte (3, 'Wahaj', 112603502, 4000);
BEGEHEN;

Die Ansicht der Tabelle zeigt den neuen Datensatz in der folgenden Tabelle an.

Beispiel 3: Führen Sie die Transaktion auf dem Rollback -Befehl in SQLite durch

Rollback ist ein Transaktionsbefehl, der verwendet wird, um Transaktionen abzuwickeln, die der Datenbank noch nicht verpflichtet wurden.

Hier haben wir die Löschoperation in der Tabelle "persons_accounts" durchgeführt, in der sie mit der Bedingung im Feld gegebenes Account_Number übereinstimmte. Danach haben wir Rollback -Anweisungen gegeben, die auch die Transaktion hier beenden, aber nicht die Änderungen, die wir auf der Tabelle durchgeführt haben.

Transaktion beginnen;
Löschen aus person_accounts wobei Account_number = 112603502;
Löschen aus person_accounts wobei Account_number = 171636460;
Rollback;

Nach der Durchführung des Rollback -Betriebs verfügt die Tabelle über die gleichen Werte und Felder, die in der Tabelle wie zuvor vorhanden sind.

Abschluss

Nach dem Lesen dieses Artikels hoffen wir, dass Sie ein klares Verständnis für SQLite -Transaktionen haben. Wir haben über die Transaktionseigenschaften von SQLite und über die Transaktionskontrolle gesprochen. Implementierten auch mehrere SQLite. Das ist alles, was es über SQLite -Transaktionen zu wissen gibt, einschließlich Commit- und Rollback -Transaktionsinformationen.