enable_case_sensitive_identifier - Amazon Redshift

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à.

enable_case_sensitive_identifier

Valori (valore predefinito in grassetto)

true, false

Description

Un valore di configurazione che determina se gli identificatori dei nomi di database, tabelle e colonne fanno distinzione tra maiuscole e minuscole. Il formato maiuscolo/minuscolo degli identificatori del nome viene mantenuto quando racchiuso tra virgolette doppie. Quando si imposta enable_case_sensitive_identifier su true, il formato maiuscolo/minuscolo degli identificatori del nome viene mantenuto. Quando si imposta enable_case_sensitive_identifier su false, il formato maiuscolo/minuscolo degli identificatori del nome non viene mantenuto.

Il caso di un nome utente racchiuso tra virgolette doppie è sempre conservato indipendentemente dall'impostazione dell'opzione di configurazione enable_case_sensitive_identifier.

Esempi

Nell'esempio seguente viene illustrato come creare e utilizzare gli identificatori con distinzione tra maiuscole e minuscole per il nome di tabella e colonna.

-- To create and use case sensitive identifiers SET enable_case_sensitive_identifier TO true; -- Create tables and columns with case sensitive identifiers CREATE TABLE "MixedCasedTable" ("MixedCasedColumn" int); CREATE TABLE MixedCasedTable (MixedCasedColumn int); -- Now query with case sensitive identifiers SELECT "MixedCasedColumn" FROM "MixedCasedTable"; MixedCasedColumn ------------------ (0 rows) SELECT MixedCasedColumn FROM MixedCasedTable; mixedcasedcolumn ------------------ (0 rows)

Nell'esempio seguente viene illustrato quando non viene mantenuto il formato maiuscolo/minuscolo degli identificatori.

-- To not use case sensitive identifiers RESET enable_case_sensitive_identifier; -- Mixed case identifiers are lowercased CREATE TABLE "MixedCasedTable2" ("MixedCasedColumn" int); CREATE TABLE MixedCasedTable2 (MixedCasedColumn int); ERROR: Relation "mixedcasedtable2" already exists SELECT "MixedCasedColumn" FROM "MixedCasedTable2"; mixedcasedcolumn ------------------ (0 rows) SELECT MixedCasedColumn FROM MixedCasedTable2; mixedcasedcolumn ------------------ (0 rows)

Note per l'utilizzo

  • Se utilizzi l'aggiornamento automatico per le viste materializzate, consigliamo di impostare il valore enable_case_sensitive_identifier nel gruppo di parametri del cluster o del gruppo di lavoro. Ciò garantisce che enable_case_sensitive_identifier rimanga costante quando le viste materializzate vengono aggiornate. Per informazioni su come aggiornare automaticamente le viste materializzate, consulta Aggiornamento di una vista materializzata. Per informazioni relative all'impostazione dei valori di configurazione nei gruppi di parametri, consulta Gruppi di parametri di Amazon Redshift nella Guida alla gestione di Amazon Redshift.

  • Se utilizzi funzionalità di sicurezza a livello di riga o di mascheramento dinamico dei dati, consigliamo di impostare il valore enable_case_sensitive_identifier nel gruppo di parametri del cluster o del gruppo di lavoro. Ciò garantisce che enable_case_sensitive_identifier rimanga costante durante la creazione e l'associazione di una policy e quindi nell'esecuzione di una query su una relazione a cui è stato applicata una policy. Per ulteriori informazioni sulla sicurezza a livello di riga. consulta Sicurezza a livello di riga. Per informazioni sul mascheramento dinamico dei dati, consulta Mascheramento dinamico dei dati.

  • Quando attivi enable_case_sensitive_identifier e crei una tabella, puoi impostare i nomi delle colonne con distinzione tra maiuscole e minuscole. Quando disattivi enable_case_sensitive_identifier ed esegui query sulla tabella, i nomi delle colonne vengono riportati in lettere minuscole. Questo può produrre risultati di query diversi da quando enable_case_sensitive_identifier è attivato. Considera il seguente esempio:

    SET enable_case_sensitive_identifier TO on; --Amazon Redshift preserves case for column names and other identifiers. --Create a table with two columns that are identical except for the case. CREATE TABLE t ("c" int, "C" int); INSERT INTO t VALUES (1, 2); SELECT * FROM t; c | C ---+--- 1 | 2 (1 row) SET enable_case_sensitive_identifier TO off; --Amazon Redshift no longer preserves case for column names and other identifiers. SELECT * FROM t; c | c ---+--- 1 | 1 (1 row)
  • È consigliabile che gli utenti normali che eseguono query su tabelle con mascheramento dei dati dinamico o policy di sicurezza collegate a livello di riga abbiano l'impostazione predefinita enable_case_sensitive_identifier. Per ulteriori informazioni sulla sicurezza a livello di riga. consulta Sicurezza a livello di riga. Per informazioni sul mascheramento dinamico dei dati, consulta Mascheramento dinamico dei dati.