DB2数据装入

带主键约束条件的DB2 export 和 load

创建数据库DB1
create database db1

用DB2用户连接到DB1数据库上
CONNECT TO DB1 USER “db2″ using db2;

创建TBL1, idx数据列是自增 且设置为主键
CREATE TABLE DB2.TBL1 ( IDX BIGINT  NOT NULL  GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1, NO CACHE ) ,
NAME VARCHAR (10)  NOT NULL  , CONSTRAINT pk_tbl1 PRIMARY KEY ( IDX)  ) IN USERSPACE1 ;

插入数据
insert into tbl1 (name) values(’01′);
insert into tbl1 (name) values(’02′);
insert into tbl1 (name) values(’13′);
insert into tbl1 (name) values(’14′);
insert into tbl1 (name) values(’15′);
insert into tbl1 (name) values(’16′);
insert into tbl1 (name) values(’17′);
insert into tbl1 (name) values(’18′);
insert into tbl1 (name) values(’19′);
insert into tbl1 (name) values(’11′);
insert into tbl1 (name) values(’12′);
insert into tbl1 (name) values(’21′);
insert into tbl1 (name) values(’221′);
insert into tbl1 (name) values(’2221′);

创建TBL2, 指定idx列为主键.
CREATE TABLE DB2.TBL2 ( IDX BIGINT  NOT NULL, NAME VARCHAR (10)  NOT NULL  , CONSTRAINT pk_tbl2 PRIMARY KEY ( IDX)  ) IN USERSPACE1 ;

将TBL1的数据export出来,放到tbl1.del文件
db2 export to tbl1.del of del select * from tbl1

尝试将tbl1.del的数据导入到tbl2里
D:\IBM>db2 load from tbl1.del of del replace into tbl2
SQL3501W  由于对数据库禁用了正向恢复,因此,表所在的表空间将不会处于备份暂挂状态。

SQL3109N  实用程序开始装入文件 “D:\IBM\tbl1.del” 中的数据。

SQL3500W  在时间 “2008-11-12 14:28:00.724079″ 时,实用程序正在开始 “LOAD”阶段。

SQL3519W  开始装入一致点。输入记录计数 = “0″。

SQL3520W  “装入一致点”成功。

SQL3110N  实用程序已完成处理。从输入文件读取了 “14″ 行。

SQL3519W  开始装入一致点。输入记录计数 = “14″。

SQL3520W  “装入一致点”成功。

SQL3515W  在时间 “2008-11-12 14:28:00.742835″ 时,实用程序已完成了 “LOAD”阶段。

SQL3500W  在时间 “2008-11-12 14:28:00.743776″ 时,实用程序正在开始 “BUILD”阶段。

SQL3213I  建立索引方式为 “REBUILD”。

SQL3515W  在时间 “2008-11-12 14:28:00.757556″ 时,实用程序已完成了 “BUILD”阶段。
读取行数         = 14
跳过行数         = 0
装入行数         = 14
拒绝行数         = 0
删除行数         = 0
落实行数         = 14

删除TBL2的主键,然后再load数据
ALTER TABLE DB2.TBL2 DROP PRIMARY KEY ;
db2 load from tbl1.del of del replace into tbl2

增加TBL2的主键约束
ALTER TABLE DB2.TBL2 ADD CONSTRAINT PK_TBL2 PRIMARY KEY ( IDX) ;

指定TBL2的IDX数据列为自增长( 注意自增长列的起始值)
ALTER TABLE DB2.TBL2 ALTER COLUMN IDX SET GENERATED AS IDENTITY ( START WITH 14 INCREMENT BY 1 NO CACHE ) ADD CONSTRAINT PK_TBL2 PRIMARY KEY ( IDX) ;

D:\IBM>db2 “select * from tbl2″

IDX                  NAME
——————– ———-
                   0 01
                   1 02
                   2 13
                   3 14
                   4 15
                   5 16
                   6 17
                   7 18
                   8 19
                   9 11
                  10 12
                  11 21
                  12 221
                  13 2221

  14 条记录已选择。
D:\IBM>db2 insert into tbl2 (name) values(’222222′)
DB20000I  SQL命令成功完成。

D:\IBM>db2 “select * from tbl2″

IDX                  NAME
——————– ———-
                   0 01
                   1 02
                   2 13
                   3 14
                   4 15
                   5 16
                   6 17
                   7 18
                   8 19
                   9 11
                  10 12
                  11 21
                  12 221
                  13 2221
                  14 222222

  15 条记录已选择。
创建TBL3
CREATE TABLE DB2.TBL3 ( IDX BIGINT  NOT NULL, NAME VARCHAR (10)  NOT NULL ) IN USERSPACE1 ;
创建TBL3的索引 再 IDX列上
CREATE  UNIQUE INDEX  DB2.IDX_TBL3 ON DB2.TBL3 (IDX ASC)  PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS  PAGE SPLIT SYMMETRIC COLLECT  SAMPLED DETAILED  STATISTICS ;

D:\IBM>db2 load from tbl1.del of del replace into tbl3
SQL3501W  由于对数据库禁用了正向恢复,因此,表所在的表空间将不会处于备份暂挂状态

SQL3109N  实用程序开始装入文件 “D:\IBM\tbl1.del” 中的数据。

SQL3500W  在时间 “2008-11-12 14:53:59.257574″ 时,实用程序正在开始 “LOAD”
阶段。

SQL3519W  开始装入一致点。输入记录计数 = “0″。

SQL3520W  “装入一致点”成功。

SQL3110N  实用程序已完成处理。从输入文件读取了 “14″ 行。

SQL3519W  开始装入一致点。输入记录计数 = “14″。

SQL3520W  “装入一致点”成功。

SQL3515W  在时间 “2008-11-12 14:53:59.276708″ 时,实用程序已完成了 “LOAD”
阶段。

SQL3500W  在时间 “2008-11-12 14:53:59.277644″ 时,实用程序正在开始 “BUILD”
阶段。

SQL3213I  建立索引方式为 “REBUILD”。

SQL3515W  在时间 “2008-11-12 14:53:59.291441″ 时,实用程序已完成了 “BUILD”
阶段。
读取行数         = 14
跳过行数         = 0
装入行数         = 14
拒绝行数         = 0
删除行数         = 0
落实行数         = 14
D:\IBM>db2 commit
DB20000I  SQL命令成功完成。

D:\IBM>db2 “select * from tbl3″

IDX                  NAME
——————– ———-
                   0 01
                   1 02
                   2 13
                   3 14
                   4 15
                   5 16
                   6 17
                   7 18
                   8 19
                   9 11
                  10 12
                  11 21
                  12 221
                  13 2221

  14 条记录已选择。