SET TRANSACTION

Name

SET TRANSACTION -- Met en place les caractéristiques de la transaction en cours.

Synopsis

SET TRANSACTION ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE }
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL
    { READ COMMITTED | SERIALIZABLE }
  

Description

Cette commande place le niveau d'isolation de la transaction. La commande SET TRANSACTION place les caractéristiques pour la transaction SQL en cours. Elle n'a pas d'effet sur les transactions sous-jacentes. Cette commande ne peut être utilisée après la première requête ou instruction de modification de données (SELECT, INSERT, DELETE, UPDATE, FETCH, COPY) d'une transaction ayant été exécutée. SET SESSION CHARACTERISTICS place le niveau d'isolation de transaction par défaut pour chaque transaction pour une session. SET TRANSACTION peut l'annuler et la remplacer pour une transaction individuelle.

Le niveau d'isolation d'une transaction détermine quelles données la transaction peut voir quand d'autres transactions sont exécutées en concurrence.

READ COMMITTED

Une instruction peut seulement voir les lignes validées avant qu'elle débute. Comportement par défaut.

SERIALIZABLE

La transaction en cours peut seulement voir les lignes validées avant qu'une première requête ou une instruction de modification de données soit exécutée dans la transaction.

Tip

Intuitivement, serializable indique que deux transactions concurrentes laisseront la base dans le même état que si les deux avaient été exécutées strictement l'une après l'autre.

Notes

Le niveau d'isolation de transaction par défaut de la session peut aussi être placé par la commande

SET default_transaction_isolation = 'value'
et dans la fichier de configuration Consultez leGuide de l'administrateur pour plus d'information.

Compatibilité

SQL92, SQL99

SERIALIZABLE est le niveau par défaut en SQL. PostgreSQL ne fournit pas les niveaux d'isolation READ UNCOMMITTED et REPEATABLE READ. À cause du contrôle de concurrence multiversion, le niveau serializable n'est vraiment serializable. Voir le Guide de l'utilisateur pour les détails.

En SQL il y a deux autres caractéristiques qui peuvent être placées avec ces commandes : si la transaction est en lecture seule et selon la taille de la zone de diagnostics. Aucun de ces concepts n'est supporté par PostgreSQL.