Posted on 2008-12-10 11:18
Prayer 閱讀(5900)
評論(0) 編輯 收藏 引用 所屬分類:
數據庫,SQL 、
DB2
加replace是先清除、后插入的動作,會清空表里所有數據,再插入要導入的數據。思想:建一個表,插入部分數據,導出后,再插入不同的數據,導入加“replace”選項,觀察db2move、import導入數據后的結果,過程比較簡單,上代碼:
1、建表、插入數據:
d:\>db2 connect to test user cwgladm using cwglpass
數據庫連接信息
數據庫服務器 = DB2/NT 8.2.9
SQL 授權標識 = CWGLADM
本地數據庫別名 = TEST
d:\>db2 create table t(id numeric not null,name varchar(20),constraint t_p primary key(id))
DB20000I SQL 命令成功完成。
d:\>db2 insert into t values(1,'chennan'),(2,'spsoft')
DB20000I SQL 命令成功完成。
d:\>db2 select * from t
ID NAME
------- --------------------
1. chennan
2. spsoft
2 條記錄已選擇。
2、導出數據,兩種導出方式:
db2move:
d:\>db2move test export -tn t -sn cwgladm -u cwgladm -p cwglpass
***** DB2MOVE *****
Action: EXPORT
Start time: Fri Jun 20 11:30:43 2008
All table names matching: T;
All schema names matching: CWGLADM;
Connecting to database TEST ... successful! Server: DB2 Common Server V8.2.9
EXPORT: 2 rows from table "CWGLADM "."T"
Disconnecting from database ... successful!
End time: Fri Jun 20 11:30:43 2008
export:
d:\>db2 export to exp_t.ixf of ixf select * from t
SQL3104N Export 實用程序開始將數據導出到文件 "exp_t.ixf" 中。
SQL3105N Export 實用程序已導出 "2" 行。
導出的行數:2
3、再次插入不同的數據,觀察db2move 導入的結果:
d:\>db2 insert into t values(3,'compute'),(4,'Database')
DB20000I SQL 命令成功完成。
d:\>db2 select * from t
ID NAME
------- --------------------
1. chennan
2. spsoft
3. compute
4. Database
4 條記錄已選擇。
d:\>db2move test import -io replace -u cwgladm -p cwglpass
***** DB2MOVE *****
Action: IMPORT
Start time: Fri Jun 20 11:33:29 2008
Connecting to database TEST ... successful! Server: DB2 Common Server V8.2.9
* IMPORT: table "CWGLADM "."T"
-Rows read: 2
-Inserted: 2
-Rejected: 0
-Committed: 2
Disconnecting from database ... successful!
End time: Fri Jun 20 11:33:30 2008
d:\>db2 select * from t
ID NAME
------- --------------------
1. chennan
2. spsoft
2 條記錄已選擇。
4、再次插入不同的數據,觀察import 導入的結果:
d:\>db2 insert into t values(3,'compute'),(4,'Database')
DB20000I SQL 命令成功完成。
d:\>db2 select * from t
ID NAME
------- --------------------
1. chennan
2. spsoft
3. compute
4. Database
4 條記錄已選擇。
d:\>db2 import from exp_t.ixf of ixf replace into t
SQL3150N PC/IXF 文件中的 H 記錄具有產品 "DB2 02.00"、日期 "20080620"
和時間 "113449"。
SQL3153N PC/IXF 文件中的 T 記錄具有名稱 "exp_t.ixf"、限定符 "" 和源 "
"。
SQL3109N 實用程序開始裝入文件 "exp_t.ixf" 中的數據。
SQL3110N 實用程序已完成處理。從輸入文件讀取了 "2" 行。
SQL3221W ...開始 COMMIT WORK。輸入記錄計數 = "2"。
SQL3222W ...COMMIT 任何數據庫更改成功。
SQL3149N 從輸入文件中處理了 "2" 行。將 "2" 行成功插入到表中。"0" 行被拒絕。
讀取行數 = 2
跳過行數 = 0
插入行數 = 2
更新行數 = 0
拒絕行數 = 0
落實行數 = 2
d:\>db2 select * from t
ID NAME
------- --------------------
1. chennan
2. spsoft
2 條記錄已選擇。
結論:加replace是先清除、后插入的動作,會清空表里所有數據,再插入要導入的數據。