

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

Define o valor de um parâmetro de configuração de servidor. Use o comando SET para substituir uma configuração para a duração da sessão ou transação atual somente.

Usa o comando [RESET](r_RESET.md) para que um parâmetro volte ao seu valor padrão. 

É possível alterar os parâmetros de configuração do servidor de várias maneiras. Para obter mais informações, consulte [Modificar a configuração do servidor](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings). 

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

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

A instrução a seguir define o valor de uma variável de contexto de sessão.

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

## Parâmetros
<a name="r_SET-parameters"></a>

SESSION   
Especifica que a configuração é válida para a sessão atual. Valor padrão.

*variable\_name*   
Especifica o nome da variável de contexto definida para a sessão.  
A convenção de nomenclatura é um nome de duas partes separado por um ponto; por exemplo *identificador.identificador*. Só é permitido um separador de ponto. Use um *identificador* que siga as regras de identificador padrão do Amazon Redshift. Para obter mais informações, consulte [Nomes e identificadores](r_names.md). Não são permitidos identificadores delimitados.

LOCAL   
Especifica que a configuração é válida para a transação atual. 

SEED TO *valor*   
Define uma propagação interna a ser usada pela função RANDOM para a geração de números aleatórios.  
SET SEED escolhe um *valor* numérico entre 0 e 1 e multiplica esse número por (231-1) para uso com a função [Função RANDOM](r_RANDOM.md). Se você usar SET SEED antes de fazer diversas chamadas RANDOM, RANDOM gerará números em uma sequência previsível.

 *parameter\_name*   
Nome do parâmetro a ser definido. Consulte [Modificar a configuração do servidor](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings) para obter informações sobre parâmetros.

 *valor*   
Novo valor do parâmetro. Use aspas simples para definir o valor de uma string específica. Se estiver usando SET SEED, esse parâmetro contém o valor SEED. 

DEFAULT   
Define o parâmetro para o valor padrão.

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

 **Alterar um parâmetro para a sessão atual** 

O exemplo a seguir define datestyle:

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

 **Configurar um grupo de consultas para gerenciamento de workload** 

Se grupos de consulta estiverem listados em uma definição de fila como parte da configuração de WLM do cluster, configure o parâmetro QUERY\_GROUP para um nome de grupo de consultas listado. Consultas subsequentes são atribuídas à fila de consultas associada. A configuração de QUERY\_GROUP permanece em vigor pela duração da sessão ou até que o comando RESET QUERY\_GROUP seja encontrado.

Este exemplo executa duas consultas como parte de 'priority' do grupo de consultas e, depois, redefine o grupo de consultas. 

```
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;
```

Para obter mais informações, consulte [Gerenciamento do workload](cm-c-implementing-workload-management.md). 

 **Alterar o namespace de identidade padrão para a sessão** 

Um usuário do banco de dados pode definir `default_identity_namespace`. Este exemplo mostra como usar `SET SESSION` para substituir a configuração durante a sessão atual e, depois, mostrar o novo valor do provedor de identidades. Isso é usado com maior frequência quando você utiliza um provedor de identidades com o Redshift e o Centro de Identidade do IAM. Para ter mais informações sobre como usar um provedor de identidades com o Redshift, consulte [Conectar o Redshift ao IAM Identity Center para proporcionar aos usuários uma experiência de logon único](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;
```

Após a execução do comando, é possível executar uma declaração GRANT ou CREATE como a seguinte:

```
GRANT SELECT ON TABLE mytable TO alice;

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

Nesse caso, o efeito de definir o namespace de identidade padrão é equivalente a prefixar cada identidade com o namespace. Neste exemplo, `alice` é substituído por `MYCO:alice`. Para ter mais informações sobre definições relativas à configuração do Centro de Identidade do IAM, consulte [ALTER SYSTEM](r_ALTER_SYSTEM.md) e [ALTER IDENTITY PROVIDER](r_ALTER_IDENTITY_PROVIDER.md).

 **Configurar uma identificação para um grupo de consultas** 

O parâmetro QUERY\_GROUP define um rótulo para uma ou mais consultas que são executadas na mesma sessão após um comando SET. Por sua vez, esse rótulo é registrado quando as consultas são executadas e pode ser usado para restringir os resultados retornados das tabelas de sistema STL\_QUERY e STV\_INFLIGHT e da visualização 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)
```

As identificações de grupo de consulta são um mecanismo útil para isolar consultas individuais ou grupos de consultas executadas como parte de scripts. Você não precisa identificar e monitorar consultas pelos IDs; você pode acompanhá-las por suas identificações.

 **Configurar um valor de seed para a geração de números aleatórios** 

O exemplo a seguir usa a opção SEED com SET para que a função RANDOM gere números em uma sequência previsível.

Primeiro, retorne três inteiros RANDOM sem definir o valor de SEED primeiro: 

```
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)
```

Agora, defina o valor de SEED como `.25` e retorne mais três números RANDOM: 

```
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)
```

Por fim, redefina o valor de SEED como `.25` e verifique se RANDOM retorna os mesmos resultados que as três chamadas anteriores: 

```
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)
```

O exemplo a seguir define uma variável de contexto personalizada. 

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