Sobald eine Tabelle in einer bestimmten Sitzung gesperrt ist, können andere Sitzungen nur dann gelesen oder in die Tabelle schreiben, es sei denn, die Sperre aus der Sitzung wird veröffentlicht. Daher befinden sich alle anderen Sitzungen im Wartenmodus, bis das Schloss veröffentlicht wird.
In dieser kurzen Anleitung werden Ihnen angezeigt.
Wie man einen Tisch sperrt
Um einen Schließstatus in einer bestimmten Tabelle zu erwerben, können Sie die Anweisung Sperle Tabellen verwenden. Die allgemeine Syntax für das Verriegelungstabellen lautet:
MySQL> Sperrtabellen TB_NAME [lock_type]Im Sperrtyp können Sie Lese- oder Leseschloss angeben. Das folgende Beispiel legt die Schreibschloss in der Schauspielertabelle fest.
Schlosstische Sakila.Schauspieler las;Sobald Sie den Schlosser haben, aktualisieren alle anderen Sitzungen keine in der Tabelle gespeicherten Daten.
Beispielsweise schlägt die folgende Anweisung fehl, es sei denn, die Tabelle ist freigeschaltet.
In Sakila einfügen.Schauspieler (First_Name, last_name, last_update) Werte ('Hallo', 'World', current_date ());MySQL gibt Ihnen einen Lesefehler als:
Fehler 1099 (HY000): Tabelle 'Schauspieler' wurde mit einer Lesesperrung gesperrt und kann nicht aktualisiert werdenSo entsperren Sie einen Tisch
Um eine Tabelle zu entsperren, verwenden Sie die Abfrage der Entsperrtabellen als:
MySQL> Entsperren Sie Tabellen;Zeigen Sie gesperrte Tische
Standardmäßig gibt es keine endgültige Möglichkeit, wie Sie nach einer gesperrten Tabelle abfragen können: (SHOW Sperrtabellen anzeigen;).
Wir können jedoch einen ProcessList -Befehl verwenden, um die gesperrten Tabellen und Benutzer anzuzeigen.
Verwenden Sie den Befehl:
ProcessList anzeigen;Dadurch werden die Informationen sowie die Fragen, die auf das Sperren warten.
Das obige Beispiel zeigt den Stammbenutzer an, der die Tabelle in der Schauspielertabelle sperrt.
Abschluss
In diesem kurzen Tutorial wurde gezeigt, wie Sie Tabellen sperren und entsperren und die Benutzer, die eine Tabelle in einer Datenbank gesperrt haben.