1. Was ist eine Transaktion?
Warum sollten wir Transaktionstechnologie verwenden? Heutzutage sind viele Softwareprogramme für mehrere Benutzer, mehrere Kurse und mehrere Threads geeignet. Um die Konsistenz der Daten zu gewährleisten, wird das Konzept der Transaktionen vorgeschlagen.
1. Prüfen Sie, ob die Datenbank Transaktionen unterstützt (InnoDB unterstützt)?
show engines;
2. Überprüfen Sie die aktuelle Standardspeicher-Engine von MySQL?
show variables like '%storage_engine%';
3. Überprüfen Sie die Speicher-Engine einer bestimmten Tabelle?
show create table test;
4. Änderungen an der Speicherstruktur der Tabelle?
Erstellen Sie eine InnoDB-Tabelle: Create table ... type=InnoDB;Alter table table_name type=InnoDB;
2. Beispiel:
Erstellen Sie eine Datenbankbank
create table account( aid int not null, accname varchar(20) not null, accmoney decimal(10,2) not null, primary key(aid))engine = innodb default charset = gbk;
2. Fügen Sie zwei Daten in die Kontotabelle ein
insert into account values(1,'A',4000); insert into account values(2,'B',2000);
3 Starten Sie die Transaktion der Tabelle
start transaction;
4 zur aktiven Übermittlung
commit; set autocommit = 0;
5. Führen Sie die folgende Anweisung aus
<pre name="code" class="sql">update account set accmoney = accmoney - 1000 where aid = 1; update account set accmoney = accmoney + 1000 where aid = 2;
6. Öffnen Sie ein neues MySQL-Befehlsfenster, um die Kontotabelle anzuzeigen
select * from account;
und Sie werden feststellen, dass sich die Daten nicht geändert haben, da die Datenbank keine Änderungsanweisungen ausgegeben hat.
7 Wenn Sie im ursprünglichen Fenster nachfragen, werden Sie feststellen, dass sich die Daten geändert haben 🎜>
select * from account;
commit;
select * from account;
1. Transaktion Das Rollback
kehrt zum Datenzustand vor der Transaktion zurück. durch Rollback.
Ergänzung: Commit und Chain bedeutet, dass eine neue Transaktion nach dem Commit der Transaktion erneut geöffnet wird.
Rollback und Release bedeutet, dass die Verbindung zum Kunden nach dem Rollback getrennt wird.
2. Wiederherstellungspunkt (Instanz)
set autocommit = 0; insert into account values(3,'C',3000); savepoint a1; insert into account values(4,'D',3000); savepoint a2; insert into account values(5,'E',3000); savepoint a3;
就会看到你插入的数据 如果你想回滚到某一状态只需rollback调用一下就行; 如:回到savepoint a1的状态
rollback to savepoint a1;
Sie wird ein neues Datenelement zur Tabelle hinzugefügt sehen.
4. Transaktionszusammenfassung
Transaktionen sollten 4 Attribute haben:
Atomizität, Konsistenz, Isolation und Haltbarkeit. Diese vier Eigenschaften werden oft als ACID-Eigenschaften bezeichnet.
Atomizität: Eine Transaktion ist eine unteilbare Arbeitseinheit. Alle in der Transaktion enthaltenen Vorgänge werden entweder ausgeführt oder nicht ausgeführt.
Konsistenz: Eine Transaktion muss die Datenbank von einem Konsistenzzustand in einen anderen Konsistenzzustand ändern. Konsistenz und Atomizität hängen eng zusammen.
Isolation: Die Ausführung einer Transaktion kann nicht durch andere Transaktionen beeinträchtigt werden, d. h. die von einer Transaktion verwendeten internen Vorgänge und Daten sind von anderen gleichzeitigen Transaktionen isoliert und gleichzeitig ausgeführte Transaktionen können sich nicht gegenseitig stören.
Haltbarkeit: Auch die Haltbarkeit wird dauerhaft. Sobald eine Transaktion festgeschrieben ist, sollten ihre Änderungen an den Daten in der Datenbank dauerhaft sein. Nachfolgende Operationen oder Ausfälle sollten keine Auswirkungen darauf haben.