命名による競合の取り扱い

手順

このトピックでは、ユーザー定義表について、ファイルの命名の競合を処理する方法の例をいくつか示します。 アプリケーションが 以下の CREATE TABLE ステートメントを実行するとします。

CREATE TABLE T (PK INT NOT NULL PRIMARY KEY, A INT)

このステートメントが実行されると、DB2 Everyplace は 表 T について以下の 2 つのファイルを作成します。

ユーザーが別の表を作成して iT という名前を使用すると、DB2 Everyplace は 2 つの 追加ファイル DSY_iT (データ) と DSY_iiT (索引) を作成します。 表 T の索引ファイルと表 iT のデータ・ファイルは、同じ名前であるために 競合が発生します。両方のファイルが DSY_iT という名前になります。 この問題を避けるために、 DB2 Everyplace はファイル名のマッピングをサポートしています。 つまり、 ファイル名は DB2 Everyplace によって完全に作成および管理されます。この フィーチャーを使用するには、アプリケーションが接続属性を設定しなければならず、最初の表が作成される前に 実行されなければなりません。 例えば CLI では次のようになります。

SQLSetConnectAttr(hdbc, SQL_ATTR_FILENAME_FORMAT,
                 (SQLPOINTER)SQL_FILENAME_FORMAT_83, 0)
 

あるいはコマンド行プロセッサーでは次のようになります。

DISABLE LONG FILENAME 

このコマンドが実行されて最初の表が作成されると、生成されるファイルは 表 T のものになります。

関連した概念

関連したタスク