Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
加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是先清除、后插入的动作,会清空表里所有数据,再插入要导入的数据。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理