Valores (padrão em negrito)
true, false
Descrição
Um valor de configuração que determina se os identificadores de nome de bancos de dados, esquemas, tabelas e colunas diferenciam maiúsculas e minúsculas. As letras maiúsculas e minúsculas dos identificadores de nome são preservadas quando colocadas entre aspas duplas e o enable_case_sensitive_identifier
é definido como true
. As maiúsculas e minúsculas dos identificadores de nome não são preservadas e, em vez disso, são convertidas em minúsculas quando você não coloca os identificadores entre aspas duplas ou quando define enable_case_sensitive_identifier
como false
.
As maiúsculas e minnúsculas de um nome de usuário entre aspas duplas são sempre mantidas, independentemente da opção de configuração enable_case_sensitive_identifier
.
Exemplos
O exemplo a seguir mostra como criar e usar identificadores que diferenciam maiúsculas e minúsculas para o nome da tabela e da coluna.
-- To create and use case sensitive identifiers
SET enable_case_sensitive_identifier TO true;
-- Create tables and columns with case sensitive identifiers
CREATE TABLE public."MixedCasedTable" ("MixedCasedColumn" int);
INSERT INTO public."MixedCasedTable" VALUES (1);
INSERT INTO public."MixedCasedTable" VALUES (2);
INSERT INTO public."MixedCasedTable" VALUES (3);
INSERT INTO public."MixedCasedTable" VALUES (4);
INSERT INTO public."MixedCasedTable" VALUES (5);
-- Now query with case sensitive identifiers
SELECT "MixedCasedColumn" FROM public."MixedCasedTable";
MixedCasedColumn
------------------
1
2
3
4
5
(5 rows)
SELECT * FROM public."MixedCasedTable" WHERE "MixedCasedColumn" = 1;
mixedcasedcolumn
------------------
1
(1 row)
O exemplo a seguir mostra quando a maiúscula e minúscula dos identificadores não são preservadas.
-- To not use case sensitive identifiers
RESET enable_case_sensitive_identifier;
-- Mixed case identifiers are lowercased despite double quotation marks
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)
Observações sobre o uso
-
Se você estiver usando a atualização automática para visões materializadas, recomendamos configurar o valor de
enable_case_sensitive_identifier
no grupo de parâmetros do cluster ou grupo de trabalho. Isso garante queenable_case_sensitive_identifier
permaneça constante quando suas visões materializadas são atualizadas. Para obter informações sobre a atualização automática para visões materializadas, consulte Atualizar uma visão materializada. Para obter informações sobre como definir valores de configuração em grupos de parâmetros, consulte Grupos de parâmetros do Amazon Redshift no Guia de gerenciamento do Amazon Redshift. -
Se você estiver usando recursos de mascaramento dinâmico de dados ou segurança por linha, recomendamos definir o valor de
enable_case_sensitive_identifier
no grupo de parâmetros do cluster ou grupo de trabalho. Isso garante queenable_case_sensitive_identifier
permaneça constante durante a criação e a anexação de uma política e a posterior consulta de uma relação que tenha uma política aplicada. Para obter informações sobre a segurança por linha, consulte Segurança por linha. Para obter informações sobre o mascaramento dinâmico de dados, consulte Mascaramento dinâmico de dados. -
Ao definir
enable_case_sensitive_identifier
como “on” e criar uma tabela, você pode definir nomes de coluna com distinção entre maiúsculas e minúsculas. Ao definirenable_case_sensitive_identifier
como “off” e consultar a tabela, os nomes das colunas ficam em letras minúsculas. Isso pode produzir resultados de consulta diferentes de quandoenable_case_sensitive_identifier
está definido como “on”. Considere o seguinte exemplo: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)
-
Recomendamos que usuários regulares que consultam tabelas com políticas de segurança por linha ou de mascaramento dinâmico de dados anexadas tenham a configuração enable_case_sensitive_identifier padrão. Para obter informações sobre a segurança por linha, consulte Segurança por linha. Para obter informações sobre o mascaramento dinâmico de dados, consulte Mascaramento dinâmico de dados.
-
Para fazer referência a identificadores com letras maiúsculas e minúsculas usando notação de ponto, coloque cada identificador que faz distinção de maiúsculas e minúsculas entre aspas duplas. Por exemplo, .
public."MixedCasedTable"."MixedCasedColumn"