Documentation PostgreSQL 14.22 » Référence » Commandes SQL » START TRANSACTION

Précédent | Niveau supérieur | Suivant
SHOW | Sommaire | TRUNCATE

## START TRANSACTION

START TRANSACTION — débute un bloc de transaction

## Synopsis

    START TRANSACTION [ mode_transaction [, ...] ]

    où mode_transaction fait
    partie de :

        ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
        READ WRITE | READ ONLY
        [ NOT ] DEFERRABLE

## Description

Cette commande débute un nouveau bloc de transaction. Si le niveau d'isolation, le mode lecture/écriture ou le mode différable est spécifié, la nouvelle transaction adopte ces caractéristiques, comme si `SET TRANSACTION` avait été exécuté. Cette commande est identique à la commande `BEGIN`.

## Paramètres

Pour obtenir la signification des paramètres de cette instruction, on pourra se référer à SET TRANSACTION.

## Compatibilité

Le standard SQL n'impose pas de lancer `START TRANSACTION` pour commencer un bloc de transaction : toute commande SQL débute implicitement un bloc. On peut considérer que PostgreSQL exécute implicitement un `COMMIT` après chaque commande non précédée de `START TRANSACTION` (ou `BEGIN`). Ce comportement est d'ailleurs souvent appelé « autocommit ». D'autres systèmes de bases de données relationnelles offrent une fonctionnalité de validation automatique.

L'option `DEFERRABLE` de `transaction_mode` est une extension de PostgreSQL.

Le standard SQL impose des virgules entre les `modes_transaction` successifs mais, pour des raisons historiques, PostgreSQL autorise l'omission des virgules.

Voir aussi la section de compatibilité de SET TRANSACTION.

## Voir aussi

BEGIN, COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION