SET

Nom

SET -- change un param�tre d'ex�cution

Synopsis

SET [ SESSION | LOCAL ] nom { TO | = } { valeur | 'valeur' | DEFAULT }
SET [ SESSION | LOCAL ] TIME ZONE { fuseau-horaire | LOCAL | DEFAULT }

Description

La commande SET change des param�tres d'ex�cution. Beaucoup des param�tres d'ex�cution list�s dans Section 16.4 peuvent �tre chang�s � la vol�e avec la commande SET. (Mais certains n�cessitent d'�tre un superutilisateur pour les changer, et d'autres ne peuvent �tre chang�s apr�s le d�marrage du serveur ou de la session.) SET ne modifie que les param�tres utilis�s par la session courante.

Si SET ou SET SESSION sont utilis�s dans une transaction qui est ensuite abandonn�e, les effets de la commande SET disparaissent lorsque la transaction est annul�e. (Ce comportement a chang� par rapport aux versions ant�rieures � la 7.3, pour lesquelles les effets de la commande SET n'�taient pas annul�s dans ce cas.) Une fois que la transaction englobant la commande est valid�e, les effets de la commande persistent jusqu'� la fin de la session, � moins qu'ils ne soient annul�s par une autre commande SET.

Les effets de SET LOCAL ne durent que jusqu'� la fin de la transaction en cours, qu'elle soit valid�e ou non. Dans le cas particulier d'une commande SET suivie par SET LOCAL dans une m�me transaction, la valeur de SET LOCAL est utilis�e jusqu'� la fin de la transaction, et celle de SET prend effet ensuite (si la transaction est valid�e).

Param�tres

SESSION

Indique que la commande prend effet pour la session courante. C'est la valeur par d�faut si ni SESSION ni LOCAL n'apparaissent.

LOCAL

Indique que la commande n'est effective que pour la transaction courante. Apr�s COMMITou ROLLBACK, la valeur utilis�e pour la session redevient effective. Notez qu'une commande SET LOCAL semblera sans effet si elle est ex�cut�e en dehors d'un bloc BEGIN car la transaction prend imm�diatement fin.

nom

Nom d'un param�tre ajustable pendant l'ex�cution. La liste des param�tres disponibles est document�e dans Section 16.4 et ci-dessous.

valeur

Nouvelle valeur du param�tre. Les valeurs peuvent �tre indiqu�es sous forme de constantes de cha�ne, d'identifiants, de nombres ou de listes de ceux-ci, s�par�s par des virgules. DEFAULT peut �tre utilis� pour remettre le param�tre � sa valeur par d�faut.

En plus des param�tres de configuration document�s dans Section 16.4, il y en a quelques autres qui ne peuvent �tre utilis�s qu'avec la commande SET ou qui ont une syntaxe sp�ciale.

NAMES

SET NAMES valeur est un �quivalent de SET client_encoding TO valeur.

SEED

Donne une valeur initiale au g�n�rateur de nombres al�atoires (la fonction random). Les valeurs autoris�es sont des nombres � virgule flottante entre 0 et 1, qui sont ensuite multipli�s par 231-1.

Le g�n�rateur de nombres al�atoires peut aussi �tre initialis� en appelant la fonction setseed :

SELECT setseed(valeur);

TIME ZONE

SET TIME ZONE valeur est �quivalent � SET timezone TO valeur. La syntaxe SET TIME ZONE permet d'utiliser une syntaxe sp�ciale pour indiquer le fuseau horaire. Voici des exemples de valeurs valides (mais certaines ne sont pas accept�es sur toutes les plates-formes.)

'PST8PDT'

Le fuseau horaire de Berkeley, Californie.

'Portugal'

Le fuseau horaire du Portugal.

'Europe/Rome'

Le fuseau horaire de l'Italie.

-7

Le fuseau horaire situ� 7 heures � l'Ouest de l'UTC (�quivalent � PDT). Les valeurs positives sont � l'est de l'UTC.

INTERVAL '-08:00' HOUR TO MINUTE

Le fuseau horaire situ� 8 heures � l'Ouest de l'UTC (�quivalent � PST).

LOCAL
DEFAULT

Utilise le fuseau horaire local (celui du syst�me d'exploitation du serveur).

Voir Section 8.5 pour de plus amples informations sur les fuseaux horaires.

Notes

La fonction set_config propose des fonctionnalit�s �quivalentes. Voir Section 9.13.

Exemples

Mettre � jour le chemin de recherche :

SET search_path TO my_schema, public;

Utiliser le style de date traditionnel POSTGRES avec comme convention de saisie <<�les jours avant les mois�>> :

SET datestyle TO postgres, dmy;

Utiliser le fuseau horaire de Berkeley, Californie, en utilisant des guillemets pour pr�server les majuscules dans les noms de fuseaux horaires :

SET TIME ZONE 'PST8PDT';
SELECT current_timestamp AS today;

             today
-------------------------------
 2003-04-29 15:02:01.218622-07

Compatibilit�

SET TIME ZONE �tend la syntaxe d�finie dans le standard SQL. Le standard ne permet que des fuseaux horaires num�riques alors que PostgreSQL est plus souple dans les syntaxes accept�es. Toutes les autre fonctionnalit�s de SET sont des extensions de PostgreSQL.

Voir aussi

RESET, SHOW