架构 - Amazon Redshift

架构

数据库包含一个或多个命名 schemas。数据库中的每个 schema 包含表和其他类型的命名对象。默认情况下,数据库具有单个 schema(名为 PUBLIC)。您可以通过 schemas 使用公用名称分组数据库对象。架构类似于文件系统目录,但架构不能嵌套。

相同的数据库对象名称可以用在同一数据库的不同 schemas 中,没有冲突。例如,MY_SCHEMA 和 YOUR_SCHEMA 都可以包含名为 MYTABLE 的表。具有所需权限的用户可以访问数据库的多个 Schemas 中的对象。

默认情况下,在数据库搜索路径中的第一个 schema 内创建对象。有关信息,请参阅此部分后面的搜索路径

Schema 可帮助解决多用户环境中的组织和并发问题,方式如下:

  • 让多名开发人员使用同一数据库且互不干扰。

  • 将数据库对象组织到逻辑组以使其更易于管理。

  • 使应用程序能够将其对象放入到单独的 schemas 中,以使其对象名称不与其他应用程序所使用的对象名称冲突。

搜索路径

搜索路径定义在 search_path 参数中,采用逗号分隔的 schema 名称列表形式。搜索路径指定在通过不包含 schemas 限定词的简单名称引用对象(例如,表或函数)时,搜索 schema 的顺序。

如果创建了对象而未指定目标 schema,则将该对象添加到搜索路径中列出的第一个 schema。当不同 schemas 中存在同名的对象时,未指定 schema 的对象名称将引用搜索路径中包含具有该名称的对象的第一个 schema。

要更改当前会话的默认 schema,请使用 SET 命令。

有关更多信息,请参阅“配置引用”中的 search_path 描述。