Posted on 2008-12-10 11:18
Prayer 阅读(5852)
评论(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是先清除、后插入的动作,会清空表里所有数据,再插入要导入的数据。