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 avait été exécuté. Cette commande est identique à la commande BEGIN.
Pour obtenir la signification des paramètres de cette instruction, on pourra se référer à SET TRANSACTION.
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.