◀ 13.

Db2でCREATE TABLE文を取得|db2lookの対象指定とDDL確認

▶

Db2の記事として内容を修復しました。Db2 LUWの既存表からDDLを抽出する入口はdb2lookです。DDLを取得することと、別環境へ適用することは別作業です。

Db2の対象環境・使用する入口・取得結果と変更操作を分けて確認する図

db2look -d データベース名 -e -z スキーマ名 -t テーブル名

上は元のdb2lookによるDDL抽出例です。指定した条件に合う対象の定義を取得しますが、依存オブジェクト・権限・配置等の全要素がこの指定だけで網羅されるとは限りません。

 

対象を決めてから抽出する

db2lookはSQL文ではなくOSから使うツールです。使用できるDb2クライアント/版と、確認済みのDB別名を先に確認します。WindowsではDb2コマンドウィンドウからの利用を公式資料で確認してください。

  • -d:対象のDB別名。接続先を本番/検証で取り違えない。
  • -e:オブジェクトを再作成するDDLの抽出。行データのバックアップとは別。
  • -z:対象スキーマ。別スキーマの依存対象を除外する場合がある。
  • -t:対象表。大文字/小文字・空白・引用符を含む名前は対象版とシェルの引用規則を確認する。

元の「データベース名」「スキーマ名」「テーブル名」は置換する説明用の値で、その文字列をそのまま実行するものではありません。引数に実パスワードを書いたり、抽出のために本番ユーザーへ全権限を付けたりしません。

出力を実行せずに点検する

  1. 接続先、対象スキーマ/表、クライアント版と実行結果のエラーを確認する。空の出力を取得成功としない。
  2. 型・デフォルト・IDENTITY・主キー/索引・外部参照等、移行に必要な定義と依存対象を点検する。権限や表スペース等は必要な抽出オプションを別に確認する。
  3. 秘密値/接続先/運用情報が含まれないか点検してから保存・共有する。OSリダイレクト等で既存ファイルを上書きしない。
  4. 適用するなら隔離した検証先で、作成順序・版/機能差・環境固有の配置を確認する。生成物をそのまま本番へ流さない。

db2lookにはDROP文や統計/構成を扱うオプションもあります。生成物を「読み取り結果だから安全なSQL」とみなさず、抽出・レビュー・適用を分離します。DDLだけでは行データや復元可能なDB全体のバックアップにはなりません。

関連する確認先

定義の読み取りはテーブル定義の確認、対象名はテーブル一覧、接続先はDB別名の一覧を確認してください。MySQLのSHOW CREATE TABLEや他DBのdumpコマンドに置き換える記事ではありません。

公式資料:db2lookのオプションと制約、DDL抽出の用途。本稿ではDb2への実接続・抽出・生成DDLの適用は未検証です。

対象と確認範囲

対象はDb2 LUWです。i/zOS、別DB製品や別クライアントの構文へ無条件に転用しません。2026年10月に公式資料と照合し、元のDb2版の操作例/リンクを回復しました。誤って置き換わった他DBの解説は削除せず過去版に保持しています。Db2実機での認証/権限/全OSの動作を検証したものではありません。関連項目はDB2親ページの子ページから選択してください。

子ページ

子ページはありません

同階層のページ
  1. DB接続コマンド
  2. データベース一覧の確認
  3. テーブル一覧の確認
  4. テーブル定義の確認
  5. DBの設定確認
  6. テーブルスペースの容量の確認および拡張
  7. データ型
  8. 複数カラムのUPDATE
  9. カラムの追加/削除/変更
  10. 自動番号付け (autoincrement) する方法
  11. インデックスの作成
  12. シーケンスおよびインクリメント(ID列)の違いと確認方法
  13. create table文の生成
  14. 特定スキーマの全テーブルの全カラム情報を取得する方法
  15. 【DB2】エラー一覧
  16. 【DB2】テーブル定義からCREATE TABLE文を生成する方法

最近更新/作成されたページ