USE SCHEMA¶
指定会话的活动/当前架构:
如果在会话中没有指定数据库,则在会话中执行的查询和其他 SQL 语句引用的任何对象都必须完全限定于对象的数据库和架构,也称为 *命名空间*(格式为
db_name.schema_name.object_name)。有关完全限定对象名称的更多信息,请参阅 对象名称解析。如果在会话中指定了数据库但没有指定架构,则在会话中执行的查询和其他 SQL 语句引用的任何对象都必须限定于对象的架构(格式为
schema_name.object_name)。如果为用户会话指定了数据库和架构,则允许在 SQL 语句和查询中使用不合格的对象名称。
语法¶
参数¶
[db_name.]name指定要用于会话的架构的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
如果架构名称是完全限定的(格式为
db_name.schema_name),则 SCHEMA 关键字是可选的。如果在用户会话指定了数据库且包含 SCHEMA 关键字,则数据库名称 (
db_name) 为可选。
示例¶
使用用户会话中指定的数据库 myschema 架构:
使用 mydb 数据库中的 myschema 架构:
以下示例展示了在切换架构的 USE 命令后,使用非限定名称引用对象的命令如何产生不同的输出结果。不同架构中的表、表数据、视图、用户定义的函数等可能各不相同。
当在 ``schema_one`` 的上下文中执行 SHOW TABLES 命令时,输出的结果会反映该架构中的对象。
执行 USE 命令切换到 ``schema_two`` 架构后,SHOW TABLES 命令输出的对象集合会发生变化:
以下示例从一种架构更改为另一种架构,然后变回原始架构。原始架构的名称存储在变量中。请运行以下命令:
这些命令的输出显示了当前架构值的变化: