

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# SET
<a name="r_SET"></a>

Définit la valeur d’un paramètre de configuration du serveur. Utilisez la commande SET pour remplacer un paramètre pendant la durée de la séance ou de la transaction actuelle uniquement.

Utilisez la commande [RESET](r_RESET.md) pour rétablir un paramètre à sa valeur par défaut. 

Vous pouvez modifier les paramètres de configuration du serveur de plusieurs manières. Pour plus d'informations, consultez [Modification de la configuration du serveur](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings). 

## Syntaxe
<a name="r_SET-synopsis"></a>

```
SET { [ SESSION | LOCAL ]
{ SEED | parameter_name } { TO | = }
{ value | 'value' | DEFAULT } |
SEED TO value }
```

L’instruction suivante définit la valeur d’une variable de contexte de session.

```
SET { [ SESSION | LOCAL ]
variable_name { TO | = }
{ value | 'value'  }
```

## Parameters
<a name="r_SET-parameters"></a>

SESSION   
Spécifie que le paramètre est valide pour la séance en cours. Valeur par défaut.

*variable\_name*   
Spécifie le nom de la variable contextuelle définie pour la session.  
La convention de nommage est un nom en deux parties séparées par un point, par exemple *identifier.identifier* (identifiant.identifiant). Un seul séparateur de points est autorisé. Utilisez un *identifiant* qui respecte les règles d’identification standard pour Amazon Redshift. Pour obtenir plus d’informations à ce sujet, consultez [Noms et identificateurs](r_names.md). Les identifiants délimités ne sont pas autorisés.

LOCAL   
Spécifie que le paramètre est valide pour la transaction en cours. 

SEED TO *valeur*   
Définit une valeur initiale interne à utiliser par la fonction RANDOM pour la génération de nombres aléatoires.  
SET SEED accepte une *valeur* numérique comprise entre 0 et 1, et la multiplie par (231-1) en vue de son utilisation avec la fonction [Fonction RANDOM](r_RANDOM.md). Si vous utilisez SET SEED avant d’effectuer plusieurs appels RANDOM, RANDOM génère les nombres selon une séquence prévisible.

 *nom\_paramètre*   
Nom du paramètre à définir. Consultez [Modification de la configuration du serveur](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings) pour obtenir des informations sur les paramètres.

 *valeur*   
Nouvelle valeur de paramètre. Utilisez des guillemets simples pour définir la valeur d’une chaîne spécifique. Si vous utilisez SET SEED, ce paramètre contient la valeur SEED. 

DEFAULT   
Définit le paramètre à la valeur par défaut.

## Exemples
<a name="r_SET-examples"></a>

 **Modification d’un paramètre pour la séance en cours** 

L’exemple suivant définit datestyle :

```
set datestyle to 'SQL,DMY';
```

 **Définition d’un groupe de requêtes pour la gestion de la charge de travail** 

Si les groupes de requêtes sont répertoriés dans une définition de file d’attente dans le cadre de la configuration WLM du cluster, vous pouvez définir le paramètre QUERY\_GROUP avec un nom de groupe de requêtes répertorié. Les requêtes suivantes sont affectées à la file d’attente des requêtes associée. Le paramètre QUERY\_GROUP reste en vigueur pendant la durée de la séance ou jusqu’à ce qu’une commande RESET\_QUERY\_GROUP soit rencontrée.

Cet exemple exécute deux requêtes dans le cadre du groupe de requêtes ’priority’, puis réinitialise le groupe de requêtes. 

```
set query_group to 'priority';
select tbl, count(*)from stv_blocklist;
select query, elapsed, substring from svl_qlog order by query desc limit 5;
reset query_group;
```

Pour plus d’informations, consultez [Gestion de la charge de travail](cm-c-implementing-workload-management.md). 

 **Modifier l’espace de noms d’identité par défaut pour la session** 

Un utilisateur de base de données peut définir `default_identity_namespace`. Cet exemple montre comment utiliser `SET SESSION` pour remplacer le paramètre pour la durée de la session en cours, puis afficher la nouvelle valeur du fournisseur d’identité. C’est le plus souvent utilisé lorsque vous utilisez un fournisseur d’identité avec Redshift et IAM Identity Center. Pour plus d’informations sur l’utilisation d’un fournisseur d’identité avec Redshift, consultez [Connexion de Redshift à IAM Identity Center pour offrir aux utilisateurs une expérience d’authentification unique](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-idp-connect.html).

```
SET SESSION default_identity_namespace = 'MYCO';
         
SHOW default_identity_namespace;
```

Après avoir exécuté la commande, vous pouvez exécuter une instruction GRANT ou une instruction CREATE comme suit :

```
GRANT SELECT ON TABLE mytable TO alice;

GRANT UPDATE ON TABLE mytable TO salesrole;
         
CREATE USER bob password 'md50c983d1a624280812631c5389e60d48c';
```

Dans ce cas, la définition de l’espace de noms d’identité par défaut équivaut à préfixer chaque identité par l’espace de noms. Dans cet exemple, `alice` est remplacé par `MYCO:alice`. Pour plus d’informations sur les paramètres relatifs à la configuration Redshift avec IAM Identity Center, consultez [ALTER SYSTEM](r_ALTER_SYSTEM.md) et [ALTER IDENTITY PROVIDER](r_ALTER_IDENTITY_PROVIDER.md).

 **Définition d’une étiquette pour un groupe de requêtes** 

Le paramètre QUERY\_GROUP définit une étiquette pour une ou plusieurs requêtes exécutées dans la même séance après une commande SET. À son tour, cette étiquette est enregistrée lorsque les requêtes sont exécutées et peuvent être utilisées pour limiter les résultats renvoyés par les tables système STL\_QUERY et STV\_INFLIGHT et la vue SVL\_QLOG. 

```
show query_group;
query_group
-------------
unset
(1 row)

set query_group to '6 p.m.';


show query_group;
query_group
-------------
6 p.m.
(1 row)

select * from sales where salesid=500;
salesid | listid | sellerid | buyerid | eventid | dateid | ...
---------+--------+----------+---------+---------+--------+-----
500 |    504 |     3858 |    2123 |    5871 |   2052 | ...
(1 row)

reset query_group;

select query, trim(label) querygroup, pid, trim(querytxt) sql
from stl_query
where label ='6 p.m.';
query | querygroup |  pid  |                  sql
-------+------------+-------+----------------------------------------
57 | 6 p.m.     | 30711 | select * from sales where salesid=500;
(1 row)
```

Les étiquettes de groupe de requêtes sont un mécanisme utile pour isoler les requêtes ou groupes de requêtes exécutés dans le cadre de scripts. Vous n'avez pas besoin d'identifier et de suivre les requêtes en fonction de leurs étiquettes IDs ; vous pouvez les suivre en fonction de leurs étiquettes.

 **Définition d’une valeur de départ pour la génération de nombres aléatoires** 

L’exemple suivant utilise SET avec l’option SEED pour que la fonction RANDOM génère des nombres selon une séquence prévisible.

D’abord, renvoyez trois entiers RANDOM sans définir au préalable la valeur SEED : 

```
select cast (random() * 100 as int);
int4
------
6
(1 row)

select cast (random() * 100 as int);
int4
------
68
(1 row)

select cast (random() * 100 as int);
int4
------
56
(1 row)
```

A présent, définissez la valeur SEED sur `.25` et renvoyez trois nombres RANDOM supplémentaires : 

```
set seed to .25;

select cast (random() * 100 as int);
int4
------
21
(1 row)

select cast (random() * 100 as int);
int4
------
79
(1 row)

select cast (random() * 100 as int);
int4
------
12
(1 row)
```

Enfin, réinitialisez la valeur SEED sur `.25` et vérifiez que RANDOM renvoie les mêmes résultats que les trois appels précédents : 

```
set seed to .25;

select cast (random() * 100 as int);
int4
------
21
(1 row)

select cast (random() * 100 as int);
int4
------
79
(1 row)

select cast (random() * 100 as int);
int4
------
12
(1 row)
```

L’exemple suivant définit une variable contextuelle personnalisée. 

```
SET app_context.user_id TO 123;
SET app_context.user_id TO 'sample_variable_value';
```