BEGIN

Nom

BEGIN -- débute un bloc de transaction

Synopsis

BEGIN [ WORK | TRANSACTION ]

Description

BEGIN initie un bloc de transaction, c'est-à-dire que toutes les instructions après la commande BEGIN seront exécutées dans une seule transaction jusqu'à ce qu'un COMMIT ou ROLLBACK explicite soit exécuté. Par défaut (sans BEGIN), PostgreSQL exécute des transactions en mode << autocommit >>, c'est-à-dire que chaque instruction est exécutée dans sa propre transaction et une validation (commit) est traitée implicitement à la fin de l'instruction (si l'exécution a réussi, sinon une annulation est exécutée).

Les instructions sont exécutées plus rapidement dans un bloc de transaction parce que la séquence début/validation de transaction demande une activité significative du CPU et du disque. L'exécution de plusieurs instructions dans une transaction est aussi utile pour s'assurer d'une cohérence lors de la réalisation de certains modifications liées : les autres sessions ne seront pas capables de voir les états intermédiaires tant que toutes les mises à jour n'auront pas été réalisées.

Paramètres

WORK
TRANSACTION

Mots clés optionnels. Ils n'ont pas d'effet.

Notes

START TRANSACTION a la même fonctionnalité que BEGIN.

Utilisez COMMIT ou ROLLBACK pour terminer un bloc de transaction.

Lancer BEGIN en étant déjà dans un bloc de transaction provoquera l'apparition d'un message d'avertissement. L'état de la transaction n'en sera pas affecté.

Exemples

Pour commencer un bloc de transaction :

BEGIN;

Compatibilité

BEGIN est une extension du langage PostgreSQL. Il n'existe pas de commande BEGIN explicite dans le standard SQL ; le début de la transaction est toujours implicite et se termine soit avec une instruction COMMIT soit avec une instruction ROLLBACK.

Les autres systèmes de bases de données relationnels peuvent offrir une fonctionnalité autocommit en supplément.

Incidemment, le mot clé BEGIN est utilisé dans un but différent en SQL embarqué. Faites attention à la sémantique de la transaction lors du portage d'applications de bases de données.

Voir aussi

COMMIT, ROLLBACK