标识符

描述

标识符是用于识别数据库对象的字符串,例如表、视图、架构、列等。Spark SQL 具有常规标识符和限定标识符,后者用反引号括起来。常规标识符和限定标识符都是不区分大小写的。

语法

常规标识符

{ 字母 | 数字 | '_' } [ , ... ]

注意: 如果 spark.sql.ansi.enabled 设置为 true,则不能将 ANSI SQL 保留关键字用作标识符。有关更多详细信息,请参阅 ANSI 合规性

定界标识符

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