識別子

説明

識別子は、テーブル、ビュー、スキーマ、列など、データベースオブジェクトを識別する文字列に使用されます。Spark SQL には、バッククォートで囲まれた正規識別子と区切り識別子があります。正規識別子と区切り識別子の両方で、大文字と小文字は区別されません。

シンタックス

正規識別子

{ letter | digit | '_' } [ , ... ]

注意: spark.sql.ansi.enabled が true に設定されている場合、ANSI SQL 予約ワードは識別子として使用できません。詳細については、ANSI 準拠を参照してください。

区切り識別子

`c [ ... ]`

引数

-- This CREATE TABLE fails with ParseException because of the illegal identifier name a.b
CREATE TABLE test (a.b int);
Error in query:
[PARSE_SYNTAX_ERROR] Syntax error at or near '.': extra input '.'(line 1, pos 20)

== SQL ==
CREATE TABLE test (a.b int)
--------------------^^^

-- This CREATE TABLE works
CREATE TABLE test (`a.b` int);

-- This CREATE TABLE fails with ParseException because special character ` is not escaped
CREATE TABLE test1 (`a`b` int);
Error in query:
[PARSE_SYNTAX_ERROR] Syntax error at or near '`'(line 1, pos 24)

== SQL ==
CREATE TABLE test1 (`a`b` int)
------------------------^^^

-- This CREATE TABLE works
CREATE TABLE test (`a``b` int);