BEGIN - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

BEGIN

Démarre une transaction. Synonyme de START TRANSACTION.

Une transaction est une même unité de travail logique qui se compose d’une commande ou de plusieurs commandes. En général, toutes les commandes d’une transaction s’exécutent sur un instantané de la base de données dont l’heure de démarrage est déterminée par la valeur définie pour le paramètre de configuration transaction_snapshot_begin.

Par défaut, les opérations Amazon Redshift (requêtes, instructions DDL, charges) sont automatiquement validées sur la base de données. Si vous souhaitez suspendre la validation d’une opération jusqu’à la fin de la tâche suivante, vous devez ouvrir une transaction avec l’instruction BEGIN, exécuter les commandes nécessaires et fermer la transaction avec une instruction COMMIT ou FIN. Si nécessaire, vous pouvez utiliser une instruction ROLLBACK pour arrêter une transaction en cours. Une exception à ce comportement est la commande TRUNCATE, qui valide la transaction dans laquelle elle est exécutée et ne peut pas être annulée.

Syntaxe

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.

Paramètres

WORK

Mot-clé facultatif.

TRANSACTION

Mot-clé facultatif ; WORK et TRANSACTION sont synonymes.

ISOLATION LEVEL SERIALIZABLE

Comme l’isolement sérialisable est pris en charge par défaut, le comportement de la transaction est le même, que cette syntaxe soit incluse ou pas dans l’instruction. Pour plus d'informations, consultez Gestion des opérations d’écriture simultanées. Aucun autre niveau d’isolement n’est pris en charge.

Note

Le langage SQL standard définit quatre niveaux d’isolement des transactions afin d’éviter les lectures non validées (où une transaction lit les données écrites par une transaction simultanée non validée), les lectures non reproductibles (où une transaction relit les données qu’elle a lues précédemment et découvre que les données ont été modifiées par une autre transaction qui les a validées depuis la lecture initiale), et les lectures fantôme (où une opération ré-exécute une requête, renvoie un ensemble de lignes qui satisfont à une condition de recherche et découvre que l’ensemble des lignes a changé en raison d’une autre transaction récemment validée) :

  • Lecture non validée : lectures non validées, lectures non reproductibles et lectures fantôme possibles.

  • Lecture validée : lectures non reproductibles et lectures fantôme possibles.

  • Lecture reproductible : lectures fantôme possibles.

  • Sérialisable : empêche les lectures non validées, les lectures non reproductibles et les lectures fantôme.

Même si vous pouvez utiliser n’importe lequel des quatre niveaux d’isolement des transactions, Amazon Redshift traite tous les niveaux d’isolement comme sérialisables.

READ WRITE

Accorde à la transaction les autorisations en lecture et en écriture.

READ ONLY

Accorde à la transaction les autorisations en lecture seule.

Exemples

L’exemple suivant démarre un bloc de transaction sérialisable :

begin;

L’exemple suivant démarre le bloc de transaction par un niveau d’isolement sérialisable, et les autorisations en lecture et écriture :

begin read write;