忍者ブログ

「DB2で制約/Identity有りのテーブルのエクスポート/インポート」の詳細記事: Javaってまだいけますか

Javaってまだいけますか

いっぱいいっぱいで無理なので学んだ事をいちいちメモっていくブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Navigation

DB2で制約/Identity有りのテーブルのエクスポート/インポート

外部キー制約やIdentity列がある場合にいろいろ面倒だったのでメモ。

◆エクスポート
db2 connect to [インスタンス名]

db2 export to [エクスポートファイル名] of IXF select * from [スキーマ名].[テーブル名]

db2 terminate

◆インポート
db2 connect to [インスタンス名]

rem 制約オフ
db2 set integrity for [スキーマ名].[テーブル名] off

rem ロード
db2 load client from [エクスポートファイル名] of ixf REPLACE INTO [スキーマ名].[テーブル名] copy yes to nul

rem 制約オン
db2 set integrity for [スキーマ名].[テーブル名] immediate checked

db2 terminate

◆インポート(Identity列がある場合)
db2 connect to [インスタンス名]

rem 制約オフ
db2 set integrity for [スキーマ名].[テーブル名] off

rem ロード
db2 load client from [エクスポートファイル名] of ixf MODIFIED BY identityoverride REPLACE INTO [スキーマ名].[テーブル名] copy yes to nul

rem 制約オン
db2 set integrity for [スキーマ名].[テーブル名] immediate checked

rem シーケンス開始値設定
db2 ALTER TABLE [スキーマ名].[テーブル名] ALTER COLUMN [Identity列名] RESTART WITH [最大値+1]

db2 terminate

[最大値+1]は事前に
SELECT MAX(Identity列名) + 1 FROM [スキーマ名].[テーブル名]
で取得しておきます。
ちなにみシーケンスオブジェクトを使ってPKを採番している場合は、
alter sequence [スキーマ名].[シーケンスオブジェクト名] restart with [最大値+1]
となります。

また、制約オフ、オンは外部キー制約の親テーブルから実行する必要があります。
あと、ロードコマンドの“copy yes to nul”をしないと、ロード完了後にテーブルがバックアップペンディング状態になります。

実際の仕事では親表から順にリストして各コマンドを生成するExcelを作って対応しました。
結構面倒ですよねぇ。

追記:
最初に制約をDROPしてインポート後に制約CREATEという方法もあるみたいです。
ERDツールでFKのDROPを生成するものもあるようですね。
こちらのブログ記事が参考になりました。
PR

Navigation

「DB2で制約/Identity有りのテーブルのエクスポート/インポート」にトラックバックする

「DB2で制約/Identity有りのテーブルのエクスポート/インポート」へのトラックバック

「DB2で制約/Identity有りのテーブルのエクスポート/インポート」へのコメント

「DB2で制約/Identity有りのテーブルのエクスポート/インポート」にコメントする

コメント作成

Navigation

Copyright ©  Javaってまだいけますか  All Rights Reserved.
  • 忍者ブログ
  • [PR]

menu

ブログ内検索

カテゴリー

カウンター

忍者アド

リンク

最新CM

[07/17 セバ]
[12/27 NONAME]

最新記事

(10/15)
(10/01)
(08/12)
(08/12)
(08/11)

プロフィール

HN:
takacy.k
年齢:
44
性別:
男性
誕生日:
1979/08/13
趣味:
自己紹介:
個人的なメモですので、投稿内容について真偽を保証するものではありません。また、当ブログの内容をご利用になったことによる(以下略)

最新TB

RSS

アーカイブ

アクセス解析