Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Imposta il valore di un parametro di configurazione del server. Utilizzare il comando SET per sostituire un'impostazione solo per la durata della sessione o della transazione corrente.
Utilizza il comando RESET per restituire un parametro al valore predefinito.
È possibile modificare i parametri di configurazione del server in diversi modi. Per ulteriori informazioni, consulta Modifica della configurazione del server.
Sintassi
SET { [ SESSION | LOCAL ] { SEED | parameter_name } { TO | = } { value | 'value' | DEFAULT } | SEED TO value }
La seguente istruzione imposta il valore di una variabile di contesto di sessione.
SET { [ SESSION | LOCAL ] variable_name { TO | = } { value | 'value' }
Parametri
- SESSION
-
Specifica che l'impostazione è valida per la sessione corrente. Valore predefinito.
- variable_name
-
Specifica il nome della variabile di contesto impostata per la sessione.
La convenzione di denominazione è un nome in due parti separato da un punto, ad esempio identifier.identifier. È consentito un solo separatore di punti. Utilizzare un identificatore che segua le regole standard degli identificatori per Amazon Redshift Per ulteriori informazioni, consulta Nomi e identificatori. Gli identificativi delimitati non sono ammessi.
- LOCAL
-
Specifica che l'impostazione è valida per la transazione corrente.
- SEED TO value
-
Imposta un seed interno che deve essere utilizzata dalla funzione RANDOM per la generazione di numeri casuali.
SET SEED accetta un valore numerico compreso tra 0 e 1 e moltiplica questo numero per (231-1) per l'uso con la funzione Funzione RANDOM. Se utilizzi SET SEED prima di effettuare più chiamate RANDOM, RANDOM genera numeri in una sequenza prevedibile.
- parameter_name
-
Nome del parametro da impostare. Per informazioni sui parametri, vedi Modifica della configurazione del server.
- value
-
Nuovo valore del parametro. Utilizza le virgolette singole per impostare il valore su una stringa specifica. Se si utilizza SET SEED, questo parametro contiene il valore SEED.
- DEFAULT
-
Imposta il parametro sul valore predefinito.
Esempi
Modifica di un parametro per la sessione corrente
L'esempio seguente imposta il datestyle:
set datestyle to 'SQL,DMY';
Impostazione di un gruppo di query per la gestione dei carichi di lavoro
Se i gruppi di query sono elencati in una definizione di coda come parte della configurazione WLM del cluster, puoi impostare il parametro QUERY_GROUP su un nome di gruppo di query elencato. Le query successive vengono assegnate alla coda di query associata. L'impostazione di QUERY_GROUP rimane valida per la durata della sessione o finché non viene rilevato un comando RESET QUERY_GROUP.
Questo esempio esegue due query come parte del gruppo di query 'priority', quindi reimposta il gruppo di query.
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;
Per ulteriori informazioni, consulta Gestione dei carichi di lavoro.
Cambia lo spazio dei nomi di identità predefinito per la sessione
Un utente del database può impostare. default_identity_namespace
Questo esempio mostra come utilizzare SET SESSION
per sovrascrivere l'impostazione per la durata della sessione corrente e quindi mostrare il nuovo valore del provider di identità. Viene utilizzato più comunemente quando si utilizza un provider di identità con Redshift e IAM Identity Center. Per ulteriori informazioni sull'utilizzo di un provider di identità con Redshift, consulta Connect Redshift with IAM Identity Center per offrire agli utenti un'esperienza di single sign-on.
SET SESSION default_identity_namespace = 'MYCO';
SHOW default_identity_namespace;
Dopo aver eseguito il comando, puoi eseguire un'istruzione GRANT o un'istruzione CREATE come la seguente:
GRANT SELECT ON TABLE mytable TO alice;
GRANT UPDATE ON TABLE mytable TO salesrole;
CREATE USER bob password 'md50c983d1a624280812631c5389e60d48c';
In questo caso, l'effetto dell'impostazione dello spazio dei nomi di identità predefinito equivale a anteporre lo spazio dei nomi a ogni identità. In questo esempio, viene sostituito da. alice
MYCO:alice
Per ulteriori informazioni sulle impostazioni relative alla configurazione di Redshift con IAM Identity Center, ALTER SYSTEM consulta e. ALTER IDENTITY PROVIDER
Impostazione di un'etichetta per un gruppo di query
Il parametro QUERY_GROUP definisce un'etichetta per una o più query eseguite nella stessa sessione dopo un comando SET. A sua volta, questa etichetta viene registrata quando vengono eseguite le query e può essere utilizzata per limitare i risultati restituiti dalle tabelle di sistema STL_QUERY e STV_INFLIGHT e dalla vista 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)
Le etichette dei gruppi di query sono un meccanismo utile per isolare singole query o gruppi di query eseguite come parte degli script. Non è necessario identificare e tracciare le query in base alle loro etichette IDs; puoi tracciarle tramite le loro etichette.
Impostazione di un valore di seed per la generazione di numeri casuali
L'esempio seguente utilizza l'opzione SEED con SET per far sì che la funzione RANDOM generi numeri in una sequenza prevedibile.
Innanzitutto, restituisce tre interi RANDOM senza prima impostare il valore 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)
Ora impostare il valore SEED su .25
, e restituire altri tre numeri 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)
Infine, ripristinare il valore SEED su .25
, e verificare che RANDOM restituisca gli stessi risultati delle tre chiamate precedenti:
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)
Nell'esempio seguente viene impostata una variabile di contesto personalizzata.
SET app_context.user_id TO 123;
SET app_context.user_id TO 'sample_variable_value';