テーブル、列、インデックスなどのデータベースオブジェクトには、それぞれ名前があります。SQL 文では、これらの名前をオブジェクト識別子と呼びます。識別子は引用符で囲むことも、囲まずに使用することもできます。識別子に特殊文字や予約語が含まれる場合は、参照するたびにバッククォート(`)で囲む必要があります。予約語の詳細は、予約語を参照してください。
オブジェクト識別子の制約
Doris では、変数 enable_unicode_name_support によって、オブジェクト識別子で Unicode 文字を使用できるかどうかを制御できます。Unicode 文字のサポートを有効にすると、識別子に Unicode のあらゆる言語の文字を使用できます。ただし、句読点やその他の文字は使用できません。
Doris では、オブジェクトの種類によって識別子の制約が異なります。各オブジェクトの制約を以下に示します。
テーブル名
| モード | 識別子の制約 |
|---|
| Unicode モード無効 | ^[a-zA-Z][a-zA-Z0-9\\-_]*$ |
| Unicode モード有効 | ^[a-zA-Z\\p{L}][a-zA-Z0-9\\-_\\p{L}]*$ |
| モード | 識別子の制約 |
|---|
| Unicode モード無効 | ^[.a-zA-Z0-9_+\\-/?@#$%^&*\"\\s,:]{1,256}$ |
| Unicode モード有効 | ^[.a-zA-Z0-9_+\\-/?@#$%^&*\"\\s,:\\p{L}]{1,256}$ |
OUTFILE 名
| モード | 識別子の制約 |
|---|
| Unicode モード無効 | ^[_a-zA-Z][a-zA-Z0-9\\-_]{0,63}$ |
| Unicode モード有効 | ^[_a-zA-Z\\p{L}][a-zA-Z0-9\\-_\\p{L}]{0,63}$ |
ユーザー名
| モード | 識別子の制約 |
|---|
| Unicode モード無効 | ^[a-zA-Z][a-zA-Z0-9.\\-_]*$ |
| Unicode モード有効 | ^[a-zA-Z\\p{L}][a-zA-Z0-9.\\-_\\p{L}]*$ |
LABEL 名
| モード | 識別子の制約 |
|---|
| Unicode モード無効 | ^[-_A-Za-z0-9:]{1,N}$。N は FE の設定 label_regex_length によって決まり、デフォルト値は 128 です。 |
| Unicode モード有効 | ^[\\-_A-Za-z0-9:\\p{L}]{1,N}$。N は FE の設定 label_regex_length によって決まり、デフォルト値は 128 です。 |
その他
| モード | 識別子の制約 |
|---|
| Unicode モード無効 | ^[a-zA-Z][a-zA-Z0-9\\-_]{0,63}$ |
| Unicode モード有効 | ^[a-zA-Z\\p{L}][a-zA-Z0-9\\-_\\p{L}]{0,63}$ |