enable_case_sensitive_identifier - Amazon Redshift

enable_case_sensitive_identifier

Valores (predeterminados en negrita)

true, false

Descripción

Es un valor de configuración que determina si los identificadores de nombres de bases de datos, tablas y columnas distinguen entre mayúsculas y minúsculas. Las letras mayúsculas y minúsculas de los identificadores de nombres se conservan cuando están encerradas entre comillas dobles. Cuando configura enable_case_sensitive_identifier en true, se conservan las letras mayúsculas y minúsculas de los identificadores de nombres. Cuando configura enable_case_sensitive_identifier en false, no se conservan las letras mayúsculas y minúsculas de los identificadores de nombres.

El caso de un nombre de usuario entre comillas dobles se conserva siempre, independientemente del valor de la opción de configuración enable_case_sensitive_identifier.

Ejemplos

En el siguiente ejemplo, se muestra cómo crear y utilizar identificadores que distinguen entre mayúsculas y minúsculas para el nombre de una columna y una tabla.

-- 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)

En el siguiente ejemplo, se muestra lo que sucede cuando no se conservan las letras mayúsculas y minúsculas de los identificadores.

-- 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)

Notas de uso

  • Si utiliza la actualización automática para las vistas materializadas, le recomendamos que establezca el valor enable_case_sensitive_identifier en el grupo de parámetros del clúster o grupo de trabajo. De este modo, se garantiza que enable_case_sensitive_identifier permanezca constante cuando se actualicen las vistas materializadas. Para obtener información sobre la actualización automática de las vistas materializadas, consulte Actualización de una vista materializada. Para obtener información sobre el establecimiento de los valores de configuración, consulte Grupos de parámetros de Amazon Redshift en la Guía de administración de Amazon Redshift.

  • Si utiliza características de seguridad de nivel de fila o de enmascaramiento dinámico de datos, le recomendamos que establezca el valor enable_case_sensitive_identifier en el grupo de parámetros del clúster o grupo de trabajo. Esto garantiza que enable_case_sensitive_identifier se mantenga constante al crear y adjuntar una política y, a continuación, al consultar una relación a la que se haya aplicado una política. Para obtener información sobre seguridad de nivel de fila, consulte Seguridad de nivel básico. Para obtener información sobre el enmascaramiento dinámico de datos, consulte Enmascaramiento de datos dinámico.

  • Cuando se activa enable_case_sensitive_identifier y se crea una tabla, se pueden establecer nombres de columnas que distingan mayúsculas de minúsculas. Cuando se desactiva enable_case_sensitive_identifier y se consulta la tabla, los nombres de las columnas aparecen en minúsculas. Esto puede producir resultados de consulta diferentes a los que se obtienen cuando enable_case_sensitive_identifier está activado. Considere el siguiente ejemplo:

    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 los usuarios habituales que consulten tablas con políticas de enmascaramiento dinámico de datos o de seguridad en el nivel de fila tengan la configuración enable_case_sensitive_identifier predeterminada. Para obtener información sobre seguridad de nivel de fila, consulte Seguridad de nivel básico. Para obtener información sobre el enmascaramiento dinámico de datos, consulte Enmascaramiento de datos dinámico.