

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# enable\_case\_sensitive\_identifier
<a name="r_enable_case_sensitive_identifier"></a>

## 值（默认为粗体）
<a name="r_enable_case_sensitive_identifier-values"></a>

true，**false**

## 说明
<a name="r_enable_case_sensitive_identifier-description"></a>

一个配置值，用于确定数据库、架构、表和列的名称标识符是否区分大小写。当您将标识符括在双引号内并将 `enable_case_sensitive_identifier` 设置为 `true` 时，名称标识符的大小写将保留。当您不将标识符括在双引号内或将 `enable_case_sensitive_identifier` 设置为 `false` 时，名称标识符的大小写不会保留，而是转换为小写。

无论 `enable_case_sensitive_identifier` 配置选项的设置如何，系统都会保留双引号括起来的 *username*（用户名）示例。

## 示例
<a name="w2aac61c49b7"></a>

以下示例说明了如何为表名及列名创建和使用区分大小写的标识符。

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

以下示例显示何时不保留标识符大小写。

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

## 使用说明
<a name="r_enable_case_sensitive_identifier-usage-notes"></a>
+  如果您为实体化视图使用自动刷新，我们建议您在集群或工作组的参数组中设置 `enable_case_sensitive_identifier` 值。这样可以确保在实体化视图刷新时 `enable_case_sensitive_identifier` 保持不变。有关实体化视图自动刷新的信息，请参阅[刷新实体化视图](materialized-view-refresh.md)。有关在参数组中设置配置值的信息，请参阅《Amazon Redshift 管理指南》**中的 [Amazon Redshift 参数组](https://docs.amazonaws.cn/redshift/latest/mgmt/working-with-parameter-groups.html)。
+  如果您使用的是行级别安全性或动态数据屏蔽功能，我们建议在集群或工作组的参数组中设置 `enable_case_sensitive_identifier` 值。这可确保在创建和附加策略，然后查询应用了策略的关系的整个过程中，`enable_case_sensitive_identifier` 保持不变。有关行级别安全性的信息，请参阅[行级别安全性](t_rls.md)。有关动态数据屏蔽的信息，请参阅[动态数据掩蔽](t_ddm.md)。
+  当您将 `enable_case_sensitive_identifier` 设置为 on 并创建表时，可以设置区分大小写的列名称。当您将 `enable_case_sensitive_identifier` 设置为 off 并查询表时，列名称会采用小写。这可能会产生与 `enable_case_sensitive_identifier` 设置为 on 时不同的查询结果。考虑以下示例：

  ```
  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)
  ```
+  我们建议，查询附加了动态数据掩蔽或行级安全策略的表的常规用户使用默认的 enable\_case\_sensitive\_identifier 设置。有关行级别安全性的信息，请参阅[行级别安全性](t_rls.md)。有关动态数据掩蔽的信息，请参阅[动态数据掩蔽](t_ddm.md)。
+ 要使用点表示法引用大小写混合的标识符，请用双引号将每个区分大小写的标识符括起来。例如 `public."MixedCasedTable"."MixedCasedColumn"`。