标识符
描述
标识符是用于识别数据库对象的字符串,例如表、视图、架构、列等。Spark SQL 具有常规标识符和限定标识符,后者用反引号括起来。常规标识符和限定标识符都是不区分大小写的。
语法
常规标识符
{ 字母 | 数字 | '_' } [ , ... ]
注意:
如果
spark.sql.ansi.enabled
设置为 true,则不能将 ANSI SQL 保留关键字用作标识符。有关更多详细信息,请参阅
ANSI 合规性
。
定界标识符
`c [ ... ]`
参数
-
letter
任何从 A-Z 或 a-z 的字母。
-
digit
任何从 0 到 9 的数字。
-
c
字符集中的任何字符。使用
`转义特殊字符(例如,`)。
示例
-- 此 CREATE TABLE 因为非法标识符名称 a.b 而失败,导致 ParseException
CREATE TABLE test (a.b int);
错误 在 查询:
[PARSE_SYNTAX_ERROR] 语法 错误 在 或 附近 '.': 多余 输入 '.'(行 1, 位置 20)
== SQL ==
CREATE TABLE test (a.b int)
--------------------^^^
-- 此 CREATE TABLE 正常工作
CREATE TABLE test (`a.b` int);
-- 此 CREATE TABLE 因为特殊字符 ` 未被转义而失败,导致 ParseException
CREATE TABLE test1 (`a`b` int);
错误 在 查询:
[PARSE_SYNTAX_ERROR] 语法 错误 在 或 附近 '`(行 1, 位置 24)
== SQL ==
CREATE TABLE test1 (`a`b` int)
------------------------^^^
-- 此 CREATE TABLE 正常工作
CREATE TABLE test (`a``b` int);