Documentation PostgreSQL 14.22 » Programmation serveur » PL/Tcl -- Langage de procédures Tcl » Gestion des transactions

Précédent | Niveau supérieur | Suivant
44.9. Sous-transactions explicites dans PL/Tcl | Sommaire | 44.11. Configuration PL/Tcl

## 44.10. Gestion des transactions

Dans une procédure appelée au haut niveau ou dans un bloc de code anonyme (commande `DO`) appelé au haut niveau, il est possible de contrôler les transactions. Pour valider la transaction en cours, appelez la commande `commit` command. Pour annuler la transaction en cours, appelez la commande `rollback`. (Notez qu'il n'est pas possible d'exécuter les commandes SQL `COMMIT` ou `ROLLBACK` via `spi_exec` ou similaire. Cela doit se faire en utilisant ces fonctions.) À la fin d'une transaction, une nouvelle transaction est automatiquement démarrée, donc il n'existe pas de commande séparée pour ça.

Voici un exemple :

    CREATE PROCEDURE transaction_test1()
    LANGUAGE pltcl
    AS $$
    for {set i 0} {$i < 10} {incr i} {
        spi_exec "INSERT INTO test1 (a) VALUES ($i)"
        if {$i % 2 == 0} {
            commit
        } else {
            rollback
        }
    }
    $$;

    CALL transaction_test1();

Les transactions ne peuvent pas être terminées quand une sous-transaction explicite est active.