| Documentation PostgreSQL 9.5.25 > Référence > Commandes SQL > START TRANSACTION | |
| PrécédentSHOW | TRUNCATE |
START TRANSACTION — débute un bloc de transaction
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
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(7) avait été exécuté. Cette commande est identique à la commande BEGIN(7).
Pour obtenir la signification des paramètres de cette instruction, on pourra se référer à SET TRANSACTION(7).
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 PostgreSQLTM 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 PostgreSQLTM.
Le standard SQL impose des virgules entre les modes_transaction successifs mais, pour des raisons historiques, PostgreSQLTM autorise l'omission des virgules.
Voir aussi la section de compatibilité de SET TRANSACTION(7).