Db2の記事として内容を修復しました。Db2 LUWの表定義はDESCRIBEとカタログで確認します。カラム・索引・主キー制約は別の情報で、MySQLのDESC/SHOW FULL COLUMNSの解説ではありません。
| この記事の要点 |
|---|
|
本稿はDB2のテーブル定義を確認する方法を説明します。テーブルのカラム構造、データ型、NULL許容、デフォルト値、主キー等を一覧化したいときに使います。
1. describe コマンドで確認する
もっとも簡単な方法です。DBに接続し、対話モード(CLP)で以下のコマンドを実行します。
|
db2 => describe table table_name |
カラム名・データ型・長さ・NULL許容などが表示されます。スキーマが必要な場合は schema.table_name の形式で指定します。
2. インデックス情報も確認する
|
db2 => describe indexes for table table_name show detail |
索引を確認します。索引の一覧と主キー/UNIQUE/外部キー/CHECK等の制約一覧を同じものとして扱わず、必要な制約はカタログで別に照合します。
3. システムカタログから取得する
SQLでより細かい情報が欲しい場合は SYSCAT.COLUMNS を直接見ます。
|
SELECT COLNAME, TYPENAME, LENGTH, SCALE, NULLS, DEFAULT |
以下は旧KEYCOLUSE単独の例です。主キー専用ではなく、他のキー制約も含み得ます。主キーだけが必要なら下のTABCONSTとの結合でTYPE = Pを指定する訂正版を使います。
|
SELECT CONSTNAME, COLNAME, COLSEQ |
4. テーブル一覧を確認する
そもそも対象テーブル名がわからないときは、まずスキーマ内のテーブル一覧を確認します。
|
db2 => list tables for schema SCHEMA |
関連コマンド
| コマンド/ビュー | 用途 |
|---|---|
describe table TABLE | カラム構造の一覧表示 |
describe indexes for table TABLE show detail | インデックス一覧 |
list tables for schema SCHEMA | スキーマ内テーブル一覧 |
SYSCAT.COLUMNS | 全カラムのメタ情報を持つシステムビュー |
SYSCAT.KEYCOLUSE | 主キー・UNIQUE・外部キーの構成列。主キーだけならTABCONSTで絞る |
SYSCAT.TABLES | テーブル一覧(テーブル種別含む) |
注意点
- 通常識別子の大文字変換と、区切り識別子の大小文字を区別し、カタログの値に合わせる。スキーマ名/表名の文字列条件を一律に大文字へ変えない
- スキーマを省略すると現在の
CURRENT SCHEMAが使われる。意図したテーブルが見つからない場合はスキーマを明示する describe tableはCLP用コマンド。アプリケーションからSQLで取得したいときはSYSCAT.COLUMNSを使う
主キーだけを確認するSQL
以下の2個の?には、実在するスキーマ名と表名を順にバインドします。CLPへ?付きで貼り付ける完成コマンドではありません。制約名だけで結合せず、スキーマと表も照合します。
SELECT k.CONSTNAME, k.COLNAME, k.COLSEQ
FROM SYSCAT.TABCONST AS c
JOIN SYSCAT.KEYCOLUSE AS k
ON k.TABSCHEMA = c.TABSCHEMA
AND k.TABNAME = c.TABNAME
AND k.CONSTNAME = c.CONSTNAME
WHERE c.TYPE = 'P'
AND c.TABSCHEMA = ?
AND c.TABNAME = ?
ORDER BY k.CONSTNAME, k.COLSEQ;
主キーが複合ならCOLSEQで列順を確認します。0件ならスキーマ/表名・権限・制約の有無を分けて調べ、その場で主キーを作成しません。カラムのNULL許容・デフォルト・生成列や制約の詳細も、DESCRIBEの一画面だけで完全なDDLが分かったと判断しないでください。
公式のDESCRIBEの用途と必要権限、TABCONSTとKEYCOLUSEを照合してください。SHOW DETAILで追加権限が必要な場合もあり、管理者権限の全面付与を初手にしません。
次に確認する内容
テーブル一覧で対象を確かめ、DDLが必要ならdb2lookによる抽出へ進みます。カラム変更や表スペースの変更は読み取り確認とは別作業です。
アプリケーション側の利用例はJdbcTemplateでのDB接続設定と値の取得を参照してください。CLPのDESCRIBEをそのままSQLとして送る手順とは分けます。
対象と確認範囲
対象はDb2 LUWです。i/zOS、別DB製品や別クライアントの構文へ無条件に転用しません。2026年10月に公式資料と照合し、元のDb2版の操作例/リンクを回復しました。誤って置き換わった他DBの解説は削除せず過去版に保持しています。Db2実機での認証/権限/全OSの動作を検証したものではありません。関連項目はDB2親ページの子ページから選択してください。
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09