| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

DB2 自動生成列のインポート

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

DB2 自動生成列のインポート

DB2 | Database |

GENERATED ALWAYS AS IDENTITY を使った列を値を保ったままインポートしようとしても拒否される

DDL

CREATE TABLE "T_ID_TEST" ( 
   "F_ID" INTEGER NOT NULL 
   GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1), 
      :

Export

EXPORT TO "C:\work\export\T_ID_TEST.ixf" OF IXF  SELECT * FROM T_ID_TEST

Import

IMPORT FROM "C:\work\export\T_ID_TEST.ixf" OF IXF INSERT INTO T_ID_TEST

解決策

  1. 一旦、コントロールセンター、[当該表コンテキストメニュー]-[変更]-[当該列]-[変更ボタン]-[値の生成タブ] の 「ID」 にチェックが入っているものを、「なし」として更新(初期値を控える)。
  2. データのインポート
  3. 上記逆の手順にて、「なし」→「ID」(このとき初期値を復元)
上記手順で生成されたDDL
  • 「ID] → 「なし」
ALTER TABLE T_ID_TEST ALTER COLUMN F_ID DROP IDENTITY ;
  • 「なし」→ 「ID」
ALTER TABLE T_ID_TEST ALTER COLUMN F_ID SET GENERATED AS IDENTITY ( START WITH 730 INCREMENT BY 1 NO CACHE )

参考