Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

SQL Grundkurs 1: Die Sprache erlernen

Transaktion mit COMMIT abschließen

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Ist alles in Ordnung, so schließen Sie eine Transaktion mit COMMIT ab. Dann heißt es aber wie beim Kartenspiel: Was liegt, das pickt! Erfahren Sie in diesem Film, welche Auswirkungen ein COMMIT so mit sich bringt.

Transkript

Wie Sie eine Transaktion erfolgreich abschließen und wie sich das Beenden einer Transaktion auf Sperren auswirkt, zeige ich Ihnen in diesem Video. Ich starte dazu hier in meinem Editor für den Microsoft SQL Server eine neue explizite Transaktion. Nun füge ich in die Tabelle Artikelgruppen einen neuen Datensatz ein. Zum Beispiel ('LM', 'Lebensmittel'). Nachdem ich in meiner Session diesen Datensatz eingefügt habe und die Transaktion noch aktiv ist, kann ich diesen Datensatz bereits sehen, andere Benutzer noch nicht. Das heißt, ich kann all meine Einfügungen, Änderungen und Löschvorgänge hier kontrollieren, solange die Transaktion noch aktiv ist. Ich öffne jetzt hier ein zweites Register und greife jetzt hier auch auf diese Tabelle zu. Was jetzt passiert ist, Sie sehen jetzt hier unten, früher hätte ich gesagt die Sanduhr, die Sanduhr gibt es jetzt nicht mehr, jetzt ist es dieser Zeit-Ring oder wie man ihn auch immer nennen möchte. Momentan befindet sich jetzt auf diesem Datensatz eine Sperre. Ich habe jetzt versucht auf diesen Datensatz zuzugreifen, auf diesen Datensatz Lebensmittel, aber nachdem hier noch eine Sperre aufrecht ist, kann ich diesen Wert noch nicht sehen. Wenn ich jetzt den Vorgang abbreche, kann ich natürlich sehr wohl, um Ihnen das zu zeigen, auf andere Daten zugreifen, zum Beispiel, wenn ich hier sage WHERE artgr = 'BE'; für Besteck, diese Anweisung wird sehr wohl funktionieren. Ich bekomme das auch zurück. Aber wenn ich SELECT * from wawi.artikelgruppen; verwende und den kompletten Inhalt meiner Tabelle abrufe, ist natürlich auch dieser neue, noch nicht committede Datensatz enthalten und deshalb bekomme ich jetzt diese Sanduhr aufgrund der Sperre. Weil solange Transaktionen aufrecht sind, sind eben Sperren auf Datensätzen. Wenn Sie dieses Spielchen, das ich Ihnen jetzt hier vorführe, mit den Sperren, bei anderen SQL-Editoren versuchen, achten Sie darauf, ob Ihr Editor hier, wenn Sie mehrere Register öffnen, auch eigene Sessions realisiert. Denn der SQL-Developer von Oracle zum Beispiel nutzt mit allen Registerkarten dieselbe Session. Deshalb würde das nicht funktionieren, sondern Sie würden genauso die Änderungen sehen, so als würden Sie es im selben Register eingeben. Wenn Sie dieses Szenario dann dort durchspielen möchten, müssen Sie den ganzen SQL-Developer als zweites Programm noch einmal öffnen. Auf jeden Fall habe ich jetzt aufgrund der Sperre hier noch immer die Uhr laufen. Sie sehen, die Abfrage dauert schon über eine Minute, weil die Sperre noch aufrecht ist. Ich kann hier aber ganz normal arbeiten in meiner Session, hier ist das Ganze noch aktiv. Jetzt werde ich den ganzen Vorgang bestätigen. Das geschieht beim Microsoft SQL Server mit der Anweisung COMMIT TRANSACTION. Diese könnte ich mit COMMIT TRAN abkürzen. Was passiert in dem Moment, wo ich diese Anweisung ausführe? In dem Moment werden alle Aktionen innerhalb meiner Transaktion, das könnten ja auch mehrere Schritte sein, nicht nur dieses eine INSERT, festgeschrieben. Damit werden aber auch die Sperren aufgehoben und die Änderungen werden für alle anderen sichtbar. Achten Sie bitte hier im rechten Fenster, was passiert, wenn ich die Anweisung COMMIT TRANSACTION aus dem linken Fenster hier ausführe. Ich klicke jetzt. Und Sie sehen, in dem Moment, wo ich hier die Transaktion beendet habe, ist die Sperre auf diesem Datensatz verschwunden, der Datensatz ist allen zugänglich gemacht worden und die Anweisung ist durchgelaufen. Und außerdem finden wir hier auch diesen neuen Datensatz wieder vor. Wie funktioniert der Vorgang nun bei unseren anderen beiden Datenbankmanagementsystemen? Gehen wir zuerst hier einmal zu Oracle. Prinzipiell ist der Vorgang derselbe, außer dass ich keine explizit gestartete Transaktion benötige, denn die Transaktion wird in dem Moment, wo ich dieses INSERT hier realisiere, sofort gestartet. In meiner Transaktion kann ich das Ergebnis wie gewohnt prüfen, auch hier finde ich also meine Lebensmittel. Und wenn ich die Änderung festschreiben möchte, dann mache ich das mit der Anweisung COMMIT. Also der Zusatz Transaction entfällt hier. Mittels COMMIT schreibe ich diese Änderung fest und jetzt ist sie für alle anderen Benutzer auch sichtbar. Der ganze Vorgang, insofern nicht Autocommit aktiv ist vom Editor her, ist bei MySQL exakt ident bei Oracle. Ich kann mir diese Anweisungen hier herein kopieren und ausführen. Ich füge diesen einen Datensatz ein und kontrolliere, ob er wirklich in der Tabelle gelandet ist. Hier sehen wir, dass dies der Fall ist. Und wenn ich jetzt mittels Commit diese Transaktion beende, dann ist dieser Datensatz nun auch festgeschrieben. Das COMMIT ist ausgeführt und diese Änderung ist damit für alle Benutzer sichtbar. Sie haben in diesem Video gesehen, wie Sie mit COMMIT beziehungsweise mit COMMIT TRANSACTION, eine Transaktion endgültig bestätigen. Damit werden alle Änderungen, die Sie im Rahmen der Transaktion vollzogen haben, festgeschrieben. Sperren auf diesen Datensätzen sind weg und die Änderungen sind für alle anderen Benutzer sichtbar.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!