インポート・ユーティリティーの CREATE モードを使用すると、エクスポート・ユーティリティーによって保存された表を再作成することができます。
ただし、この処理にはいくつかの制約があり、入力表の属性の多くが保持されません。
インポート時に表を再作成するには、エクスポート操作でいくつかの要件を満たしておく必要があります。まず、元の表を IXF ファイルにエクスポートしなければなりません。ファイル形式 DEL または ASC のファイルをエクスポートした場合は、出力ファイルにレコード・データは組み込まれますが、ターゲット表の記述は組み込まれません。このようなファイル・フォーマットのデータを持つ表を再作成するには、
ターゲット表を作成してから、ロード
またはインポート・ユーティリティーを使用して、
これらのファイルから表にデータを入れます。
元の表定義をキャプチャーし、対応するデータ定義言語 (DDL) を生成するには、
db2look ユーティリティーを使用します。さらに、エクスポート時に使用する SELECT ステートメントには、特定のアクション・ストリングしか組み込めません。例えば、SELECT 節では列名を使用できません。使用できるのは、SELECT * だけです。
注: インポートの CREATE モードは、非推奨になります。
表のキャプチャーと再作成には、db2look ユーティリティーを使用してください。
- 保持される属性
元の表の属性のうち、表の再作成時に保持される属性は、以下のとおりです。
- 主キーの名前および定義
- 以下のような列情報
- 列名
- 列データ・タイプ。ユーザー定義の特殊タイプはその基本タイプとして保存されます。
- ID プロパティー
- 長さ (lob_file タイプの場合を除く)
- コード・ページ (該当する場合)
- ID オプション
- 列が NULL 可能または不可のどちらで定義されているか
- 定数のデフォルト値 (ある場合)。ただし他のタイプのデフォルト値は該当しません。
- 以下のような索引情報
- 索引名
- 索引の作成者名
- 列名と、
昇順または降順のどちらで各列がソートされるか
- 索引がユニーク索引として定義されているかどうか
- 索引がクラスター化されているかどうか
- 索引で反転スキャンが可能かどうか
- PCTFREE 値
- MINPCTUSED 値
注: 索引の列名に文字 - または + が含まれていると、索引情報は保持されません。その場合は、SQL27984W が返されます。
- 失われる属性
元の表の属性のうち、表の再作成時に保持されない属性は、以下のとおりです。
- ソースが、通常の表、マテリアライズ照会表 (MQT)、ビュー、
またはこれらのソースの全部または一部から取られた列セットのうちのどれであったか
- ユニーク制約およびその他のタイプの制約、またはトリガー (主キー制約を含まない)
- 以下のような表情報
- MQT 定義 (該当する場合)
- MQT オプション (該当する場合)
- 表スペース・オプション。ただしこの情報は、IMPORT コマンドを使って指定することができます。
- マルチディメンション・クラスタリング (MDC) ディメンション
- パーティション表ディメンション
- 表パーティション・キー
- NOT LOGGED INITIALLY プロパティー
- チェック制約
- 表のコード・ページ
- 保護表のプロパティー
- 表または値の圧縮オプション
- 以下のような列情報
- 定数値以外の任意のデフォルト値
- LOB オプション (ある場合)
- XML プロパティー
- CREATE TABLE ステートメントの references 節 (ある場合)
- 参照制約 (ある場合)
- チェック制約 (ある場合)
- 生成列オプション (ある場合)
- データベースの有効範囲シーケンスに依存する列
- 暗黙的な非表示プロパティー
- 以下のような索引情報
- INCLUDE 列 (存在する場合)
- 索引が主キー索引である場合は、索引名
- 索引が主キー索引である場合は、降順のキー (デフォルトは昇順)
- 索引列名に 16 進値 0x2B または 0x2D が含まれる
- コード・ページ変換後に 128 バイトを超える索引名
- PCTFREE2 値
- ユニーク制約
注: このリストですべてを取り上げているわけではないので、このリストを使用するときには注意が必要です。
インポートが失敗し、SQL3311N が返された場合でも、ファイル・タイプ修飾子 forcecreate を使用すれば、表を再作成できます。
この修飾子を使用すると、情報が欠落したまま、限られた情報だけで表が作成されます。