BEGIN - 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.

BEGIN

Startet eine Transaktion. Synonym mit START TRANSACTION.

Eine Transaktion ist eine einzelne, logische Arbeitseinheit, unabhängig davon, ob sie aus einem einzigen oder aus mehreren Befehlen besteht. Im Allgemeinen werden alle Befehle in einer Transaktion für einen Snapshot der Datenbank ausgeführt, dessen Startzeit durch den Wert bestimmt wird, der für den Systemkonfigurationsparameter transaction_snapshot_begin festgelegt ist.

Standardmäßig werden einzelne Amazon-Redshift-Operationen (Abfragen, DDL-Anweisungen, Lasten) der Datenbank automatisch übergeben. Wenn Sie ein Commit für eine Operation aussetzen möchten, bis die anschließende Aufgabe abgeschlossen ist, müssen Sie eine Transaktion mit der BEGIN-Anweisung öffnen, die erforderlichen Befehle ausführen und dann die Transaktion mit der Anweisung COMMIT oder END schließen. Wenn notwendig, können Sie die Anweisung ROLLBACK verwenden, um eine Transaktion abzubrechen, die gerade ausgeführt wird. Eine Ausnahme von diesem Verhalten stellt der Befehl TRUNCATE dar, der einen Commit für die Transaktion ausführt, in der er ausgeführt wird, und für den kein Rollback möglich ist.

Syntax

BEGIN [ WORK | TRANSACTION ] [ ISOLATION LEVEL option ] [ READ WRITE | READ ONLY ] START TRANSACTION [ ISOLATION LEVEL option ] [ READ WRITE | READ ONLY ] Where option is SERIALIZABLE | READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ Note: READ UNCOMMITTED, READ COMMITTED, and REPEATABLE READ have no operational impact and map to SERIALIZABLE in Amazon Redshift. You can see database isolation levels on your cluster by querying the stv_db_isolation_level table.

Parameter

WORK

Optionales Schlüsselwort.

TRANSACTION

Optionales Schlüsselwort; WORK und TRANSACTION sind Synonyme.

ISOLATION LEVEL SERIALIZABLE

Die serialisierbare Isolierung wird standardmäßig unterstützt. Daher bleibt das Verhalten der Transaktion stets gleich, unabhängig davon, ob diese Syntax in der Anweisung enthalten ist oder nicht. Weitere Informationen finden Sie unter Verwalten gleichzeitiger Schreiboperationen. Es werden keine anderen Isolierungsstufen unterstützt.

Anmerkung

Der SQL-Standard definiert vier Stufen der Transaktionsisolierung, um folgende Ereignisse zu verhindern: nicht korrekte Lesevorgänge (wenn eine Transaktion Daten liest, die von einer gleichzeitigen Transaktion geschrieben werden, für die kein Commit ausgeführt wurde), nicht wiederholbare Lesevorgänge (wenn eine Transaktion Daten erneut liest, die sie zuvor bereits gelesen hat, und feststellt, dass die Daten durch eine andere Transaktion geändert wurden, für die seit dem ersten Lesevorgang ein Commit ausgeführt wurde) und Phantomlesevorgänge (wenn eine Transaktion eine Anfrage erneut ausführt, einen Satz von Zeilen zurückgibt, die eine Suchbedingung erfüllen, und dann feststellt, dass der Satz von Zeilen aufgrund einer anderen Transaktion, für die vor Kurzem ein Commit ausgeführt wurde, geändert wurde):

  • Lesen von Daten, für die kein Commit ausgeführt wurde: Nicht korrekte Lesungen, nicht wiederholbare Lesungen und Phantomlesungen sind möglich.

  • Lesen von Daten, für die ein Commit ausgeführt wurde: Nicht wiederholbare Lesungen und Phantomlesungen sind möglich.

  • Wiederholbare Lesungen: Phantomlesungen sind möglich.

  • Serialisierbar: Verhindert nicht korrekte Lesungen, nicht wiederholbare Lesungen und Phantomlesungen.

Obwohl Sie jede der vier Isolierungsstufen für Transaktionen verwenden können, verarbeitet Amazon Redshift alle Isolierungsstufen als serialisierbar.

READ WRITE

Erteilt der Transaktion Lese- und Schreibberechtigungen.

READ ONLY

Erteilt der Transaktion Leseberechtigungen.

Beispiele

Im folgenden Beispiel wird ein serialisierbarer Transaktionsblock gestartet:

begin;

Im folgenden Beispiel wird der Transaktionsblock auf der serialisierbaren Isolierungsstufe und mit Lese- und Schreibberechtigungen gestartet:

begin read write;