識別子
説明
識別子とは、テーブル、ビュー、スキーマ、列などのデータベースオブジェクトを識別するために使用される文字列です。Spark SQL には、通常識別子と、バッククォートで囲まれた区切り識別子があります。通常識別子と区切り識別子の両方とも、大文字と小文字を区別しません。
構文
通常識別子
{ letter | digit | '_' } [ , ... ]
注意: spark.sql.ansi.enforceReservedKeywords が true に設定されている場合、ANSI SQL の予約キーワードは識別子として使用できません。詳細については、ANSI 準拠 を参照してください。
区切り識別子
`c [ ... ]`
パラメータ
-
文字
A-Z または a-z の任意の文字。
-
数字
0 から 9 までの任意の数字。
-
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);