PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 13.18 » Programmation serveur » Interface de programmation serveur » Gestion des transactions

46.4. Gestion des transactions

SPI_commit — valider la transaction courante
SPI_rollback — annuler la transaction courante
SPI_start_transaction — fonction obsolète

Il n'est pas possible d'exécuter des commandes de contrôle des transactions, telles que COMMIT et ROLLBACK via une fonction SPI comme SPI_execute. Cependant, il existe des fonctions d'interface séparées qui permettent le contrôle des transactions via SPI.

Il n'est généralement pas sûr et sensible de démarrer et terminer des transactions dans des fonctions définies par l'utilisateur et appelables en SQL sans prendre en compte le contexte dans lequel elles sont appelées. Par exemple, une limite de transaction dans le milieu d'une fonction qui fait partie d'une expression SQL complexe, elle-même partie d'une commande SQL, aura probablement comme résultat des erreurs internes obscures ou des crashs. Les fonctions d'interface présentées ici ont principalement comme but d'être utilisées par les implémentations de langage de procédure pour supporter la gestion des transactions dans les procédures niveau SQL appelées par la commande CALL, en prenant en compte le contexte de l'appel à CALL. Les procédures utilisant SPI implémentées en C peuvent implémenter la même logique mais les détails de cette implémentation dépassent le cadre de cette documentation.