LOCK - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

LOCK

Schränkt den Zugriff auf eine Datenbanktabelle ein. Dieser Befehl ist nur sinnvoll, wenn er innerhalb eines Transaktionsblocks ausgeführt wird.

Der LOCK Befehl ruft im Modus "ACCESSEXCLUSIVE" eine Sperre auf Tabellenebene ab und wartet, falls erforderlich, bis alle widersprüchlichen Sperren aufgehoben werden. Die explizite Sperrung einer Tabelle auf diese Weise führt dazu, dass Lese- und Schreibvorgänge für die Tabelle abwarten, wenn sie über andere Transaktionen oder Sitzungen versucht werden. Eine explizite Tabellensperre, die von einem Benutzer erstellt wird, hindert andere Benutzer vorübergehend daran, Daten aus dieser Tabelle auszuwählen oder Daten in diese Tabelle zu laden. Die Sperre wird aufgehoben, wenn die Transaktion, die den Befehl enthält, abgeschlossen ist. LOCK

Befehle, die Tabellen referenzieren, wie Schreibvorgänge, bewirken implizit weniger einschränkende Tabellensperren. Wenn ein Benutzer beispielsweise versucht, Daten aus einer Tabelle zu lesen, während ein anderer Benutzer die Tabelle aktualisiert, stellen die gelesenen Daten einen Snapshot der Daten dar, für die bereits ein Commit ausgeführt wurde. (In einigen Fällen werden Abfragen abgebrochen, wenn sie Regeln für die serialisierbare Isolierung verletzen.) Siehe Verwalten gleichzeitiger Schreiboperationen.

Einige DDL Operationen, wie z. B. DROP TABLE undTRUNCATE, erzeugen exklusive Sperren. Diese Operationen verhindern, dass Daten gelesen werden.

Wenn ein Sperrkonflikt auftritt, zeigt Amazon Redshift eine Fehlermeldung an, um den Benutzer zu warnen, der die konfliktbehaftete Transaktion gestartet hat. Die Transaktion, die den Sperrkonflikt empfangen hat, wird abgebrochen. Jedes Mal, wenn ein Sperrkonflikt eintritt, schreibt Amazon Redshift einen Eintrag in die Tabelle STL_TR_ CONFLICT.

Syntax

LOCK [ TABLE ] table_name [, ...]

Parameter

TABLE

Optionales Schlüsselwort.

table_name

Der Name der Tabelle, die gesperrt werden soll. Sie können mehrere Tabellen sperren, indem Sie eine Liste verwenden, in der Tabellennamen durch Komma getrennt werden. Sie können keine Ansichten sperren.

Beispiel

begin; lock event, sales; ...