前のトピック: スキーマ ファイルの構文

次のトピック: TABLE_INFO ステートメント

TABLE ステートメント

CA SDM データベース スキーマの論理テーブルとそのテーブルの論理列(フィールド)を定義します。 これらの論理テーブルおよび論理列は、TABLE ステートメントに続くマッピング ステートメントでデータベース管理システムが使用する物理テーブルおよび物理列にマップされます。

注: 新しいテーブルを定義する場合は、そのテーブルのマッピング ステートメントを定義する必要があります。 マッピング ステートメントについてはこの章の最後で説明します。その後に、TABLE ステートメント、TABLE_INFO ステートメント、およびマッピング ステートメントを結合する例を示します。

構文

TABLE table_name {field value_type field_attributes; [...]}

引数

TABLE

TABLE ステートメントを導入します。 必ず大文字で指定してください。 スキーマの論理テーブルごとに 1 つの TABLE ステートメントが必要です。

table_name

データベース テーブルの名前(たとえば、Call_Req)。 データベース テーブルを追加する場合は、小文字 z で始まる名前を指定できます (これで、既存の CA SDM テーブル名とも、今後付与される名前とも、競合する可能性がなくなります)。既存のテーブルを変更する場合は、いずれかの .sch ファイルでそのテーブルを探し、同じ名前を使用します。

field

テーブルの論理列の名前(たとえば、ID や desc)。 各列を名前で識別する必要があります。 テーブルを追加する場合や、列を既存のテーブルに追加する場合は、小文字 z で始まる名前を指定できます。ただし、フィールド名を文字「_f」で終了しないでください(これで、既存の CA SDM 列名とも、今後付与される名前とも、競合する可能性がなくなります)。

value_type

フィールドのデータ型。 有効な値は以下のとおりです。

説明

STRING nn

長さが nn 文字の文字列。

INTEGER

32 ビットの数字。

LOCAL_TIME

1970 年 1 月 1 日からの秒数。 CA SDM は、このデータ型を以下のような指定の日付形式に自動的に再フォーマットします。
mm/dd/yy hh:mm:ss.

DURATION

秒単位の期間。

REAL

浮動小数点数。

UUID

16 バイトのバイナリ値。

field_attributes

フィールドの説明。 有効な値は以下のとおりです。

説明

KEY

このフィールドを、pdm_load で更新するレコードを指定するためのプライマリ キーとして指定します。 これは、デフォルトのプライマリ キー(ID)が指定されていない場合に使用されます。 フィールドがテーブルのプライマリ キーである場合は必須です。

NOT_NULL

フィールドに値が必要であることを示します。 フィールドがテーブルのプライマリ キーである場合は必須です。 フィールドがプライマリ キーでない場合はオプションです。

REF other_table_name

フィールドが別のテーブルを参照することを示します。 フィールドがプライマリ キーであるかどうかに関係なくオプションです。

S_KEY

このフィールドを、pdm_load で更新するレコードを特定するためのセカンダリ キーであると見なします。オプションです。

UNIQUE

フィールドの値が一意である必要があることを示します。 フィールドがテーブルのプライマリ キーである場合は必須です。 フィールドがプライマリ キーでない場合はオプションです。

マクロは、設定時にそのマクロが表す値に変換される同義語です。 データ型または属性にマクロを使用できます。 マクロを使用するには、#include ステートメントを追加して、そのマクロを定義するファイルを、(通常はスキーマ ファイルを基準とした)パス名を含めてインクルードします。 インクルード ステートメントは、マクロを使用する前に定義する必要があります。 インクルード ステートメントの例を以下に示します。

#include "../schema.mac"

以下に、$ NX_ROOT/site(UNIX)ディレクトリまたはインストール ディレクトリ/site(Windows)ディレクトリにある .mac ファイルに定義されているマクロをいくつか示します。

データ タイプ

同値

nn

NOT_NULL

uniq

UNIQUE NOT_NULL

ADDR_LINE

STRING 30

EMAILADDR

STRING 120

ENT_DESC

STRING 40

ENT_NAME

STRING 30

OSI_NAME

STRING 80

OSI_TYPE_STRING

STRING 60

USERID

STRING 85

PHONENUM

STRING 32

SYMBOL

STRING 12

HIER_SYM

STRING 60

LONG_SYM

STRING 30

COMMENT

STRING 1000

LONG_STR

STRING 500

LONG_DESC

STRING 240

BOOL

INTEGER

データベース スキーマのこの TABLE ステートメントは重大度を定義します。 マクロ nn は、del フィールドには値が必須であることを示します。 マクロ uniq は、値が必須で、かつ一意である必要があることを示します。

#include :../schema.mac”
TABLE Severity {
   id        INTEGER uniq KEY;    // key id
   del       INTEGER nn;          // 0=present,1=gone
   sym       SYMBOL uniq S_KEY; // type symbol
   desc      ENT_DESC;            // non‑OSI specified column
}

次のように TABLE ステートメントを変更して、[リクエストの詳細]ウィンドウの[優先度]フィールドを必須とします。

TABLE Call_Req {priority INTEGER NOT_NULL;}

以下の TABLE ステートメントは、[Resolution Code]フィールドを Call_Req テーブルに追加します。 フィールドの内容は数値であり、Resolution_Code テーブルを参照します。 この参照により、ユーザは[リクエストの詳細]ウィンドウの[解決方法コード]フィールドをダブルクリックして Resolution_Code テーブル内の値を表示することができます。‑

TABLE Call_Req {zres_code INTEGER REF Resolution_Code;}