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

MyMemoWiki

「DB2 自動生成列のインポート」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
==DB2 自動生成列のインポート==
+
==[[DB2 自動生成列のインポート]]==
 
[[DB2]] | [[Database]] |  
 
[[DB2]] | [[Database]] |  
===GENERATED ALWAYS AS IDENTITY を使った列を値を保ったままインポートしようとしても拒否される===
+
===GENE[[R]]ATED ALWAYS AS IDENTITY を使った列を値を保ったままインポートしようとしても拒否される===
 
====DDL====
 
====DDL====
  CREATE TABLE "T_ID_TEST" (  
+
  CREATE TABLE "T_ID_[[TEST]]" (  
     "F_ID" INTEGER NOT NULL  
+
     "F_ID" INTEGE[[R]] NOT NULL  
     GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),  
+
     GENE[[R]]ATED ALWAYS AS IDENTITY (STA[[R]]T WITH 1 INC[[R]]EMENT BY 1),  
 
       :
 
       :
 
====Export====
 
====Export====
  EXPORT TO "C:\work\export\T_ID_TEST.ixf" OF IXF  SELECT * FROM T_ID_TEST
+
  EXPORT TO "C:\work\export\T_ID_[[TEST]].ixf" OF IXF  SELECT * FROM T_ID_[[TEST]]
  
 
====Import====
 
====Import====
  IMPORT FROM "C:\work\export\T_ID_TEST.ixf" OF IXF INSERT INTO T_ID_TEST
+
  IMPORT FROM "C:\work\export\T_ID_[[TEST]].ixf" OF IXF INSERT INTO T_ID_[[TEST]]
  
 
====解決策====
 
====解決策====
19行目: 19行目:
 
=====上記手順で生成されたDDL=====
 
=====上記手順で生成されたDDL=====
 
*「ID] → 「なし」
 
*「ID] → 「なし」
  ALTER TABLE T_ID_TEST ALTER COLUMN F_ID DROP IDENTITY ;
+
  ALTER TABLE T_ID_[[TEST]] ALTER COLUMN F_ID DROP IDENTITY ;
 
*「なし」→ 「ID」
 
*「なし」→ 「ID」
  ALTER TABLE T_ID_TEST ALTER COLUMN F_ID SET GENERATED AS IDENTITY ( START WITH 730 INCREMENT BY 1 NO CACHE )
+
  ALTER TABLE T_ID_[[TEST]] ALTER COLUMN F_ID SET GENERATED AS IDENTITY ( START WITH 730 INCREMENT BY 1 NO CACHE )
 
===参考===
 
===参考===
 
*[http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.dm.doc/doc/t0004575.html データのインポート]
 
*[http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.dm.doc/doc/t0004575.html データのインポート]

2020年2月16日 (日) 04:24時点における最新版

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 )

参考