首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 表結構導出與資料導入導出全攻略:db2look、db2move、EXPORT/IMPORT/LOAD 實戰語法大全

     編輯:DB2 教學

方法一:控制中心圖形化導出 DDL

物件視圖 → 選取表(可 Ctrl/Shift 多選) → 右鍵 → 「生成 DDL」。

方法二:命令列完整流程(推薦自動化)

1. 導出表結構:db2look

mkdir data && cd data
db2look -d <dbname> -e -a -x -i <user> -w <pwd> -o ddlfile.sql

參數:-e 導出 DDL、-a 所有物件、-x 含授權、-o 輸出檔。

2. 導出全庫資料:db2move

db2move <dbname> export -u <user> -p <pwd>

產生 *.ixf(資料)與 *.msg(日誌)檔案。

3. 單表資料導出:EXPORT

EXPORT TO /path/TABLE1.ixf OF IXF SELECT * FROM TABLE1;
EXPORT TO /path/TABLE1.del OF DEL SELECT col1,col2 FROM TABLE1;

IXF 含結構與資料,DEL 為純文字分隔檔。

資料導入/載入語法大全

IMPORT(SQL 引擎、觸發器生效、適合小量)

IMPORT FROM /path/TABLE1.ixf OF IXF INSERT INTO TABLE1;
IMPORT FROM /path/TABLE1.ixf OF IXF INSERT_UPDATE INTO TABLE1;  -- 存在則更新
IMPORT FROM /path/TABLE1.ixf OF IXF REPLACE INTO TABLE1;        -- 先清空
IMPORT FROM /path/TABLE1.ixf OF IXF SAVECOUNT 1000 MESSAGES /path/msg.txt INSERT INTO TABLE1;

LOAD(高速、繞過 SQL 層、需高權限)

LOAD FROM /path/TABLE1.ixf OF IXF INSERT INTO TABLE1;
LOAD FROM /path/TABLE1.ixf OF IXF REPLACE INTO TABLE1;      -- 裝載前清空
LOAD FROM /path/TABLE1.ixf OF IXF RESTART INTO TABLE1;      -- 失敗重啟
LOAD FROM /path/TABLE1.ixf OF IXF MODIFIED BY IDENTITYIGNORE INSERT INTO TABLE1; -- 忽略自增欄位

解除載入後的檢查待定狀態

SET INTEGRITY FOR TABLE1 CHECK IMMEDIATE UNCHECKED;

若仍失敗,需檢查資料是否違反約束,修正後重試。

LOAD vs IMPORT 核心差異

維度IMPORTLOAD
執行引擎SQL 引擎(逐列 INSERT)直接格式化寫頁(繞過 SQL)
速度慢快 10-100 倍
日誌量完整記錄最小化(可 NO LOG)
觸發器/RI/約束全部觸發預設不觸發,需 SET INTEGRITY
權限需求INSERTSYSADM/DBADM/LOAD 權限
適用場景小量、需業務邏輯大量初載、ETL、資料遷移

實戰建議

  • 遷移/初載:db2move export/import 或 LOAD。
  • 日常增量:IMPORT INSERT_UPDATE 或 MERGE。
  • 自增欄位導入:必加 MODIFIED BY IDENTITYIGNORE(LOAD)或 IDENTITYOVERRIDE(IMPORT)。
  • 導入後務必 RUNSTATS 更新統計資訊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved