SET

Name

SET -- change un paramètre de démarrage

Synopsis

SET variable { TO | = } { value | 'value' | DEFAULT }
SET TIME ZONE { 'timezone' | LOCAL | DEFAULT }
  

Entrées

variable

Un paramètre de démarrage..

value

Nouvelle valeur de paramètre. DEFAULT peut être utilisé pour spécifier le replacement du paramètre à sa valeur par défaut. Les listes de chaînes sont admises, mais les constructions plus complexes peuvent nécessiter d'are incluses dans des simples ou doubles guillemets.

Description

La commande SET modifie les paramètres de démarrage. Les paramètres suivants peuvent être modifiés :

CLIENT_ENCODING, NAMES

Place l'encodage client multi-octet. L'encodage spécifié doit être supporté par le serveur.

Cette option n'est disponible que si PostgreSQL est compilé avec le support multi-octets.

DATESTYLE

Choisit le style de représentation date/time. Il existe deux états : la sortie date/time par défaut et l'interprétation ambiguë de l'entrée.

Ci-dessous des styles de sortie date/time :

ISO

Utilise les dates et heures de style ISO 8601 (YYYY-MM-DD HH:MM:SS). Utilisé par défaut.

SQL

Utilise les dates et heures de style Oracle/Ingres. Notez que ce style n'a plus rien à voir avec le SQL (qui utilise ISO 8601), la désignation de cette option est un accident historique.

PostgreSQL

Utilise le format traditionnel PostgreSQL.

German

Utilise dd.mm.yyyy pour les représentations des dates numériques.

Les deux options suivantes déterminent un sous-style des formats de sortie du SQL et de PostgreSQL et l'interprétation préférée de l'entrée date ambiguë.

European

Utilise dd/mm/yyyy pour les représentations numériques des dates.

NonEuropean, US

Utilise mm/dd/yyyy pour les représentations numériques des dates.

Une valeur pour SET DATESTYLE peut provenir de la première liste (styles de sortie), ou de la seconde liste (sous-styles), ou une de chaque séparées par une virgule.

L'initialisation des formats de dates peuvent être faits en :

Plaçant la variable d'environnement PGDATESTYLE. Si PGDATESTYLE est placée dans l'environnement d'un client basé sur libpq, libpq placera automatiquement DATESTYLE à la valeur de PGDATESTYLE au démarrage de la connexion.
Au lancement du serveur en utilisant l'option -o -e pour placer les dates en convention European.

L'option DateStyle n'est prévu que pour le portage d'applications. Pour formater vos valeurs date/time, utilisez la famille de fonctions to_char.

SEED

Place l'amorce interne pour le générateur de nombre aléatoire.

value

La valeur pour l'amorce à utiliser par la fonction random.Les valeurs admises sont les nombres décimaux entre 0 et 1, qui sont alors multipliés par 231-1. Ceci produira sans prévenir un dépassement de capacité si un nombre en dehors de cette étendue est utilisé.

L'amorce peut aussi être placée en invoquant la fonction SQL setseed :

SELECT setseed(value);
	    

SERVER_ENCODING

Place l'encodage serveur multi-octets.

Cette option est seulement disponibles si PostgreSQL a été compilé avec le support multi-octets.

TIME ZONE, TIMEZONE

Place la zone horaire par défaut pour la session. Les arguments peuvent être un intervalle de temps SQL constant, un entier ou une constante en double précision, ou une chaîne représentant une zone horaire supportée par le système d'exploitation hôte.

Les valeurs possibles pour la zone horaire dépendent de votre système d'exploitation. Par exemple, sur Linux /usr/share/zoneinfo contient la base des zones horaires.

Ici, quelques valeurs admises pour les zones horaires :

'PST8PDT'

Zone horaire pour la Californie.

'Portugal'

Zone horaire pour le Portugal.

'Europe/Rome'

Zone horaire pour l'Italie.

7

Place la zone horaire avec un décalage de 7 heures vers l'ouest par rapport à GMT (équivalent à PDT).

INTERVAL '08:00' HOUR TO MINUTE

Place la zone horaire avec un décalage de 8 heures vers l'ouest par rapport à GMT (équivalent à PST).

LOCAL, DEFAULT

Place la zone horaire à votre zone locale (celle de votre système d'exploitation).

Si une zone horaire invalide est spécifiée, la zone horaire passe en GMT (sur la plupart des systèmes).

Si la variable d'environnement PGTZ est placée au niveau d'un client basé sur libpq, libpq placera automatiquement TIMEZONE à la valeur de PGTZ au démarrage de la connexion.

Une liste plus étendue des paramètres de démarrage peut être consultée dans le Guide de l'administrateur.

Utilisez SHOW pour voir le placement des différents paramètres.

Diagnostics

SET VARIABLE

Message retourné si succès.

ERROR: not a valid option name: name

Le paramètre que vous essayez de placer n'est pas valide.

ERROR: permission denied

Vous devez être superutilisateur pour pouvoir faire certaines mises en place.

ERROR: name can only be set at start-up

Certains paramètres sont placés une fois le serveur démarré.

Exemples

Place le style date en traditionnel PostgreSQL avec les conventions européennes :

SET DATESTYLE TO PostgreSQL,European;
Place la zone horaire pour Berkeley, Californie, en utilisant des guillemets pour préserver les attributs majuscule du spécificateur de zone horaire (notez que le format date/time est ISO ici) :
 
SET TIME ZONE "PST8PDT";
SELECT CURRENT_TIMESTAMP AS today;
   
         today
------------------------
 1998-03-31 07:41:21-08
Place la zone horaire pour l'Italie (notez les apostrophes ou les guillemets pour les caractères spéciaux) :
 
SET TIME ZONE 'Europe/Rome';
SELECT CURRENT_TIMESTAMP AS today;
   
         today
------------------------
 1998-03-31 17:41:31+02

Compatibilité

SQL92

La seconde syntaxe indiquée ci-dessus (SET TIME ZONE) essaie de mimer le SQL92. Cependant, le SQL permet seulement les décalages de zones horaires numériques. Tous les autres paramètres indiqués plus haut sont des extensions PostgreSQL.