enable_case_sensitive_identifier
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, 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. Quando você definir enable_case_sensitive_identifier
como true
, a maiúscula e minúscula dos identificadores de nome são preservadas. Quando você definir enable_case_sensitive_identifier
como false
, a maiúscula ou minúscula dos identificadores de nome não são preservadas.
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 "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)
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 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.