FirebirdSQL logo

COMMIT

affectation

Confirmation de la transaction.

Disponible en

DSQL, ESQL

Syntaxe
COMMIT [WORK] [TRANSACTION tr_name]
  [RELEASE] [RETAIN [SNAPSHOT]];
Table 1. Paramètres de l’opérateur COMMIT
Paramètre Description

tr_name

Nom de la transaction. Disponible uniquement dans ESQL.

L’instruction COMMIT confirme toutes les modifications de données effectuées dans le cadre de cette transaction (ajouts, modifications, suppressions). Les nouvelles versions des enregistrements deviennent disponibles pour les autres transactions, et si la clause RETAIN n’est pas utilisée, toutes les ressources du serveur associées à l’exécution de cette transaction sont libérées.

Si une erreur de base de données se produit au cours du processus de validation de la transaction, celle-ci n’est pas validée. Le programme utilisateur doit gérer la situation d’erreur et revalider la transaction ou l’annuler.

La clause optionnelle TRANSACTION spécifie le nom de la transaction. La clause TRANSACTION n’est disponible que dans Embedded SQL. Si la clause TRANSACTION n’est pas spécifiée, l’instruction COMMIT est appliquée à la transaction par défaut.

Note

Les transactions nommées permettent d’exécuter simultanément plusieurs transactions actives dans la même application. Une variable du langage de base portant le même nom doit être déclarée et initialisée. En DSQL, cette restriction empêche la spécification dynamique des noms de transaction.

Le mot-clé facultatif WORK ne peut être utilisé que pour des raisons de compatibilité avec d’autres systèmes de gestion de bases de données relationnelles.

Le mot-clé RELEASE n’est disponible que dans Embedded SQL. Il vous permet de vous déconnecter de toutes les bases de données après la fin de la transaction en cours. Le mot-clé RELEASE n’est supporté que pour des raisons de compatibilité avec les anciennes versions d’Interbase. L’instruction ESQL DISCONNECT est maintenant utilisée à la place.

Si la phrase RETAIN [SNAPSHOT] est utilisée, une validation douce est effectuée. Les actions effectuées dans le cadre de cette transaction sont validées dans la base de données et la transaction elle-même reste active, conservant son identifiant ainsi que l’état du curseur qu’elle avait avant la validation douce. Dans ce cas, il n’est pas nécessaire de relancer la transaction et de réexécuter l’instruction SELECT pour récupérer les données.

Si le niveau d’isolation SNAPSHOT ou SNAPSHOT TABLE STABILITY d’une telle transaction, après le soft commit, la transaction continue à voir l’état de la base de données qui était au début de la transaction, c’est-à-dire que le programme client ne voit pas les résultats nouvellement confirmés de la modification des données d’autres transactions. De plus, le soft commit ne libère pas les ressources du serveur (les curseurs ouverts ne sont pas fermés).

Tip

Pour les transactions qui ne font que lire des données dans la base de données, il est également recommandé d’utiliser l’opérateur COMMIT plutôt que ROLLBACK, car cette option nécessite moins de ressources serveur et améliore les performances de toutes les transactions suivantes.

Voir aussi :

SET TRANSACTION, ROLLBACK.

ROLLBACK

affectation

Annulez la transaction.

Disponible en

DSQL, ESQL

Syntaxe
ROLLBACK [WORK] [TRANSACTION tr_name]
  [RETAIN [SNAPSHOT] | TO SAVEPOINT sp_name] [RELEASE];
Table 1. Paramètres de l’opérateur ROLLBACK
Paramètre Description

tr_name

Nom de la transaction. Disponible uniquement dans ESQL.

sp_name

Le nom du point de sauvegarde, disponible uniquement dans DSQL.

L’instruction ROLLBACK annule tous les changements de données de la base de données (ajouts, modifications, suppressions) effectués dans le contexte de cette transaction. L’instruction ROLLBACK ne provoque jamais d’erreurs. Si l’instruction RETAIN n’est pas spécifiée, elle libère toutes les ressources du serveur associées à l’exécution de cette transaction.

La clause optionnelle TRANSACTION spécifie le nom de la transaction. La clause TRANSACTION n’est disponible que dans Embedded SQL. Si la clause TRANSACTION n’est pas spécifiée, l’instruction ROLLBACK s’applique à la transaction par défaut.

Note

Les transactions nommées permettent à plusieurs transactions actives de s’exécuter simultanément dans la même application. Une variable du langage de base portant le même nom doit être déclarée et initialisée. En DSQL, cette restriction empêche la spécification dynamique des noms de transaction.

Le mot-clé facultatif WORK ne peut être utilisé que pour des raisons de compatibilité avec d’autres systèmes de gestion de bases de données relationnelles.

Le mot-clé RETAIN indique que toutes les actions de modification des données dans le contexte de cette transaction sont annulées et que la transaction elle-même continue d’être active, conservant son identifiant ainsi que l’état du curseur qu’elle avait avant que la transaction ne soit soft-committed. Ainsi, les ressources allouées à la transaction ne sont pas libérées.

Pour les niveaux d’isolation SNAPSHOT et SNAPSHOT TABLE STABILITY, l’état de la base de données reste tel qu’il était lorsque la transaction a été initialement lancée, mais dans le cas du niveau d’isolation READ COMMITTED, la base de données sera telle qu’elle était lorsque l’instruction ROLLBACK RETAIN a été exécutée. Si une transaction est annulée tout en conservant son contexte, il n’est pas nécessaire de réexécuter l’instruction SELECT pour récupérer les données de la table.

Voir aussi :

SET TRANSACTION, COMMIT.