Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dalla Patch 198. Le UDF Python esistenti continueranno a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
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à.
Nomi e identificatori
I nomi identificano oggetti di database, comprese tabelle e colonne, nonché utenti e password. È possibile usare i termini nome e identificatore in modo intercambiabile. Ci sono due tipi di identificatori, gli identificatori standard e gli identificatori delimitati o racchiusi tra virgolette. Gli identificatori devono essere composti solo da caratteri UTF-8 stampabili. Le lettere ASCII negli identificatori standard e delimitati fanno distinzione tra maiuscole e minuscole e sono scritte in minuscolo nel database. Nei risultati delle query, i nomi delle colonne vengono restituiti in lettere minuscole per impostazione predefinita. Per restituire i nomi delle colonne in lettere maiuscole, impostare il parametro di configurazione describe_field_name_in_uppercase su true.
Identificatori standard
Gli identificatori SQL standard rispettano un insieme di regole ed è necessario che:
-
Inizia con un carattere alfabetico ASCII a byte singolo o un carattere di sottolineatura oppure un carattere UTF-8 multibyte lungo da due a quattro byte.
-
I caratteri successivi possono essere caratteri alfanumerici ASCII a byte singolo, caratteri di sottolineatura o simboli del dollaro oppure caratteri multibyte lunghi da due a quattro byte. UTF-8
-
Abbiano una lunghezza compresa tra 1 e 127 byte, senza comprendere le virgolette per gli identificatori delimitati.
-
Non contengano virgolette e spazi.
-
Non siano una parola chiave di SQL riservata.
Identificatori delimitati
Gli identificatori delimitati (conosciuti anche come identificatori tra virgolette) iniziano e terminano con le virgolette doppie ("). Se vedi un identificatore delimitato, è necessario usare le virgolette doppie per ogni riferimento a quell'oggetto. L'identificatore può contenere qualsiasi carattere stampabile standard UTF-8 diverso dalle virgolette doppie stesse. Pertanto, è possibile creare nomi di colonna o tabella che comprendono caratteri altrimenti non ammessi, come spazi o il simbolo di percentuale.
Le lettere ASCII negli identificatori delimitati fanno distinzione tra maiuscole e minuscole e sono scritte in minuscolo. Per usare una virgoletta doppia in una stringa, è necessario farla precedere da un altro carattere di virgoletta doppia.
Case-sensitive identificatori
Case-sensitive gli identificatori (noti anche come identificatori misti) possono contenere sia lettere maiuscole che minuscole. Per utilizzare gli identificatori con distinzione tra maiuscole e minuscole, è possibile impostare la configurazione da enable_case_sensitive_identifier a true. È possibile impostare questa configurazione per il cluster o per una sessione. Per ulteriori informazioni, consulta Valori di parametro predefiniti nella Guida alla gestione di Amazon Redshift e enable_case_sensitive_identifier.
Nomi di colonna di sistema
Non è possibile usare i seguenti i nomi delle colonne di sistema PostgreSQL come nomi delle colonne definite dall'utente. Per ulteriori informazioni, consulta https://www.postgresql.org/docs/8.0/static/ddl-system-columns.html
-
oid -
tableoid -
xmin -
cmin -
xmax -
cmax -
ctid
Esempi
Questa tabella mostra esempi di identificatori delimitati, l'output risultante e una discussione:
| Sintassi | Risultato | Discussione |
|---|---|---|
| "group" | gruppo | GROUP è una parola riservata, quindi il suo uso all'interno di un identificatore necessita delle virgolette doppie. |
| """WHERE""" | "dove" | Anche WHERE è una parola riservata. Per includere le virgolette nella stringa, eseguire l'escape per ciascuna virgoletta utilizzando virgolette supplementari. |
| "This name" | this name | Le doppie virgolette sono necessarie per conservare lo spazio. |
| "This ""IS IT""" | this "is it" | Perché diventino parte del nome, è necessario che ciascuna delle virgolette che circonda IS IT sia preceduta da altre virgolette. |
Per creare una tabella chiamata group con una colonna di nome this "is it":
create table "group" ( "This ""IS IT""" char(10));
Le seguenti query restituiscono lo stesso risultato:
select "This ""IS IT""" from "group"; this "is it" -------------- (0 rows)
select "this ""is it""" from "group"; this "is it" -------------- (0 rows)
Anche la seguente sintassi table.column completa restituisce lo stesso risultato:
select "group"."this ""is it""" from "group"; this "is it" -------------- (0 rows)
Il seguente comando CREATE TABLE crea una tabella con una barra nel nome di una colonna:
create table if not exists city_slash_id( "city/id" integer not null, state char(2) not null);