はじめに
Verticaでスキーマやテーブル、カラムなどのオブジェクトに名前を付ける際の命名規則について紹介します。
文字数の上限
オブジェクト名のデータ長は、128バイトまで許容されています。
これを文字数に換算すると、以下のようになります。
| 1文字あたりのデータ長 | 文字数の上限 | |
|---|---|---|
| シングルバイト | 1バイト | 128文字 |
| マルチバイト | 3バイト | 42文字 |
シングルバイト文字とマルチバイト文字が混在する場合は、データ長の合計が128バイト以内になるようにしてください。
“(ダブルクォート)で囲まれないオブジェクト名の命名規則
[1文字目の文字]
・A~Z、a~zのみ(アルファベットの大文字/小文字)
・_(アンダースコア)
※UNICODEについては定義されていません
・A~Z、a~zのみ(アルファベットの大文字/小文字)
・_(アンダースコア)
※UNICODEについては定義されていません
※上記以外の半角文字は使えません。
[2文字目以降の文字]
・A~Z、a~zのみ(アルファベットの大文字/小文字)
・_(アンダースコア)
・0~9(数字)
・$(ドル記号)
※UNICODEについては定義されていません
・A~Z、a~zのみ(アルファベットの大文字/小文字)
・_(アンダースコア)
・0~9(数字)
・$(ドル記号)
※UNICODEについては定義されていません
※$(ドル記号)は標準SQLではサポートされない文字のため、アプリケーションの移植時に注意が必要な場合があります。
“(ダブルクォート)で囲むオブジェクト名の命名規則
・どのような文字でも使えます
オブジェクト名に”(ダブルクォート)で囲んだものを指定する場合は、数字だけのもの、スペースを含むもの、記号、後述する予約文字などを使用する事ができます。
大文字と小文字の区別
Verticaでは、オブジェクト名の大文字/小文字を区別しません。
例えば、「TABLE1」や「table1」、「Table1」は同じオブジェクトとして扱います。
使用可能な文字
Verticaには予約されている文字列(キーワード)があり、それらをオブジェクト名に使う事ができません。
これらの予約されている文字列は、以下の方法で確認が可能です。
reserved列の値がRと表示されるものはreserved(予約されている)を意味し、
Nと表示されるものはnon-reserved(予約されていない)を意味しています。
つまり、Rと表示されるキーワードをオブジェクト名に付ける事はできません。
(ダブルクォートで囲んだオブジェクト名の場合は使う事ができます)
SELECT * FROM KEYWORDS ;
keyword | reserved
--------------------------------+----------
ABORT | N
ABSOLUTE | N
ACCESS | N
ACCESSRANK | N
ACCOUNT | N
ACTION | N
ACTIVATE | N
ADD | N
ADMIN | N
AFTER | N
AGGREGATE | N
ALL | R
(以下、省略)検証バージョンについて
この記事の内容はVertica 9.1で確認しています。
以上。