START TRANSACTION [ mode_transaction [, ...] ] où mode_transaction fait partie de : ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY
Cette commande débute un nouveau bloc de transaction. Si le niveau d'isolation ou le mode lecture/écriture 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.
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.