Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL Advanced Ten – Anwendung von Transaktionen

黄舟
Freigeben: 2016-12-29 16:47:39
Original
958 Leute haben es durchsucht

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;
Nach dem Login kopieren

2. Überprüfen Sie die aktuelle Standardspeicher-Engine von MySQL?

show variables like '%storage_engine%';
Nach dem Login kopieren

3. Überprüfen Sie die Speicher-Engine einer bestimmten Tabelle?

show create table test;
Nach dem Login kopieren

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;
Nach dem Login kopieren

2. Fügen Sie zwei Daten in die Kontotabelle ein

insert into account values(1,'A',4000);  
insert into account values(2,'B',2000);
Nach dem Login kopieren

3 Starten Sie die Transaktion der Tabelle

start transaction;
Nach dem Login kopieren

4 zur aktiven Übermittlung

commit;  
set autocommit = 0;
Nach dem Login kopieren

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;
Nach dem Login kopieren

6. Öffnen Sie ein neues MySQL-Befehlsfenster, um die Kontotabelle anzuzeigen

select * from account;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
8. Senden Sie den physischen Commit

commit;
Nach dem Login kopieren
9. Überprüfen Sie die Daten in einem anderen Client und Sie werden feststellen, dass sich die Daten geändert haben

select * from account;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
3 . Transaktions-Rollback und Wiederherstellungspunkt


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,&#39;C&#39;,3000);  
savepoint a1;  
insert into account values(4,&#39;D&#39;,3000);  
savepoint a2;  
insert into account values(5,&#39;E&#39;,3000);  
savepoint a3;
Nach dem Login kopieren
Datenbankinformationen anzeigen

就会看到你插入的数据

如果你想回滚到某一状态只需rollback调用一下就行;

如:回到savepoint a1的状态
Nach dem Login kopieren
rollback to savepoint a1;
Nach dem Login kopieren
und dann die Abfrageanweisung ausführen


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.

Das Obige ist der Inhalt von MySQL Advanced Ten - Transaction Application. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage