

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

# search\$1path
<a name="r_search_path"></a>

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

**'\$1user'、public、***schema\$1names*

现有 schema 名称的逗号分隔的列表。如果 **'\$1user'** 存在，则将替换与 `SESSION_USER` 同名的 schema，否则它将被忽略。

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

指定不带 schema 组件的简单名称引用对象（例如表或函数）时搜索 schema 的顺序。
+ 外部 schema 和外部表不支持搜索路径。外部表必须通过一个外部 schema 明确地进行限定。数据共享的行为就像外部数据，因此不支持将它们作为搜索路径。
+ 如果在没有特定目标 schema 的情况下创建对象，则对象将被置于搜索路径中列出的第一个 schema 中。如果搜索路径为空，系统将返回错误。
+ 如果不同的 schema 中存在具有相同名称的对象，则使用搜索路径中找到的第一个对象。
+ 仅可通过使用合格的（用点分隔）名称指定其包含 schema 来引用未存在于搜索路径的任何 schema 中的对象。
+ 将始终搜索系统目录 schema pg\$1catalog。如果路径中提到了该 schema，则将按指定顺序搜索该 schema。否则，将在任何路径项目之前搜索该 schema。
+ 如果存在当前会话的临时表 schema pg\$1temp\$1nnn，则将始终搜索该 schema。可使用别名 pg\$1temp 在路径中明确列出该 schema。如果未在路径中列出该 schema，则将首先搜索该 schema（甚至在 pg\$1catalog 之前）。但是，仅在临时 schema 中搜索关系名称（表、视图）。不在临时 schema 中搜索函数名称。

## 示例
<a name="r_search_path-example"></a>

以下示例将创建 schema ENTERPRISE 并设置到新 schema 的 search\$1path。

```
create schema enterprise;
set search_path to enterprise;
show search_path;

 search_path
-------------
 enterprise
(1 row)
```

以下示例将 schema ENTERPRISE 添加到默认 search\$1path。

```
set search_path to '$user', public, enterprise;
show search_path;

         search_path
-----------------------------
 "$user", public, enterprise
(1 row)
```

以下示例将表 FRONTIER 添加到 schema ENTERPRISE。

```
create table enterprise.frontier (c1 int);
```

如果在相同的数据库中创建表 PUBLIC.FRONTIER，并且用户未在查询中指定 schema 名称，则 PUBLIC.FRONTIER 优先于 ENTERPRISE.FRONTIER。

```
create table public.frontier(c1 int);
insert into enterprise.frontier values(1);
select * from frontier;

frontier
----
(0 rows)

select * from enterprise.frontier;

c1
----
1
(1 row)
```