为什么装入又被删除了?

我的sql并没有删除


SQL3501W  由于禁用数据库正向恢复,因此表所驻留的表空间将不被置于备份暂挂状态。
SQL3039W  可供 DATA BUFFER 的 LOAD 使用的内存禁止完全 LOAD
并行性。将使用装入并行性 "1"。
SQL1193I  实用程序正开始通过 SQL 语句 " SELECT
A.IIDD,'刑事案件',A.LADWXC,DATE(A.LARQ), DATE(A.ZASJSX),A...." 装入数据。
SQL3500W  在时间 "2008-11-12 09:14:21.528007",实用程序在开始 "LOAD"。
SQL3519W  开始装入一致点。输入记录数 = "0"。
SQL3520W  “装入一致点”成功。
SQL3110N  实用程序已完成处理。从输入文件读了 "1000" 行。
SQL3519W  开始装入一致点。输入记录数 = "1000"。
SQL3520W  “装入一致点”成功。
SQL3515W  在时间 "2008-11-12 09:33:11.845851",实用程序已经完成了 "LOAD"。
SQL3500W  在时间 "2008-11-12 09:33:11.846872",实用程序在开始 "BUILD"。
SQL3213I  建立索引方式为 "INCREMENTAL"。
SQL3515W  在时间 "2008-11-12 09:33:14.443651",实用程序已经完成了 "BUILD"。
SQL3500W  在时间 "2008-11-12 09:33:14.627936",实用程序在开始 "DELETE"。
SQL3509W  实用程序已从表中删除了 "1000" 行。
SQL3515W  在时间 "2008-11-12 09:33:17.060126",实用程序已经完成了 "DELETE"。

读取行数         = 1000
跳过行数         = 0
装入行数         = 1000
拒绝行数         = 0
删除行数         = 1000
落实行数         = 1000
参与11

11同行回答

zhengpeng318329zhengpeng318329软件开发工程师泰康
确实是有重复的数据,我这里同样的错误提示,原来是有一个主键的约束了。显示全部
确实是有重复的数据,我这里同样的错误提示,原来是有一个主键的约束了。收起
互联网服务 · 2011-08-25
浏览1283
学习经验:loveliness:显示全部
学习经验:loveliness:收起
2008-12-08
浏览1401
leo_wynleo_wyn商业智能工程师Security
原帖由 wxx_126 于 2008-11-13 11:14 发表 仍然非常怀疑leo就是fly的马甲 你肯定搞错了, 我只是一个很普通的db2爱好者!显示全部
原帖由 wxx_126 于 2008-11-13 11:14 发表


仍然非常怀疑leo就是fly的马甲

你肯定搞错了, 我只是一个很普通的db2爱好者!收起
系统集成 · 2008-11-19
浏览1453
原帖由 wxx_126 于 2008-11-13 11:14 发表 仍然非常怀疑leo就是fly的马甲 不是吧?显示全部
原帖由 wxx_126 于 2008-11-13 11:14 发表


仍然非常怀疑leo就是fly的马甲

不是吧?收起
2008-11-19
浏览1389
楼主快来结贴吧显示全部
楼主快来结贴吧收起
2008-11-13
浏览1495
wxx_126wxx_126数据库管理员农信银资金清算中心
仍然非常怀疑leo就是fly的马甲显示全部
仍然非常怀疑leo就是fly的马甲收起
互联网服务 · 2008-11-13
浏览1385
带主键约束条件的DB2 export 和 load创建数据库DB1create database db1用DB2用户连接到DB1数据库上CONNECT TO DB1 USER "db2" using db2;创建TBL1, idx数据列是自增 且设置为主键CREATE TABLE DB2.TBL1 ( IDX BIGINT  NOT NULL  GENERATED ALWAYS A...显示全部
带主键约束条件的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 条记录已选择。收起
2008-11-12
浏览1438
那就先把主键去掉, 然后load, load完了 再指定主键, 同时指定主键的开始值呗.显示全部
那就先把主键去掉, 然后load, load完了 再指定主键, 同时指定主键的开始值呗.收起
2008-11-12
浏览1406
macrozengmacrozeng数据库管理员IBM
使用 REPLACE  选项也可以造成这样的效果,如果没有主键的话也没用 REPLACE 选项就可能出现重复的记录显示全部
使用 REPLACE  选项也可以造成这样的效果,如果没有主键的话也没用 REPLACE 选项就可能出现重复的记录收起
政府机关 · 2008-11-12
浏览1408
哈哈,这个问题我碰到过。很简单:这个表存在主键,是不允许重复的。load开始的时候会将数据都插进去,然后再校验是否存在主键冲突,如果冲突就会删除数据。所以,你读了1000条,又删除了1000条,正常。...显示全部
哈哈,这个问题我碰到过。很简单:
这个表存在主键,是不允许重复的。load开始的时候会将数据都插进去,然后再校验是否存在主键冲突,如果冲突就会删除数据。
所以,你读了1000条,又删除了1000条,正常。收起
2008-11-12
浏览1446

提问者

fcming915
擅长领域: 数据库

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2008-11-12
  • 关注会员:0 人
  • 问题浏览:9567
  • 最近回答:2011-08-25
  • X社区推广