WEB开发网
开发学院数据库DB2 DB2中的数据移动-装入 阅读

DB2中的数据移动-装入

 2008-05-15 14:58:45 来源:WEB开发网   
核心提示:例十三:关于异常表由用户定义的异常表可以用于存储不遵循唯一约束和主码约束的行,如果装入的时候没有指定异常表,DB2中的数据移动-装入(2),则违反唯一约束的行将被丢弃并且将不再有机会恢复或修改,用SAMPLE数据库中的STAFF表做实验1. 创建一个结构与STAFF表相同的表STAFF1CREATE TABLE STA

例十三:关于异常表

由用户定义的异常表可以用于存储不遵循唯一约束和主码约束的行。如果装入的时候没有指定异常表,则违反唯一约束的行将被丢弃并且将不再有机会恢复或修改。

用SAMPLE数据库中的STAFF表做实验

1. 创建一个结构与STAFF表相同的表STAFF1

CREATE TABLE STAFF1 LIKE STAFF

2. 把STAFF表中的一部分数据插入到STAFF1中

INSERT INTO STAFF1 SELECT * FROM STAFF WHERE ID<=160

3. 再创建一个结构与STAFF1相同的表STAFFEXP,作为异常表

CREATE TABLE STAFFEXP LIKE STAFF1

4. 给该异常表添加一列,因为异常表和普通表相比,前面的结构都相同,就是最后多出一列或两列(列名任意),第一列是时间戳类型,记录异常记录插入的时间,第二列是大文本类型(至少为32K大小),保存导致该条记录被拒绝的特定约束信息。本例中只添加一个时间戳列。

ALTER TABLE STAFFEXP ADD COLUMN TIME TIMESTAMP

5. 为STAFF1表创建一个唯一索引

CREATE UNIQUE INDEX IDXSTAFF ON STAFF1(ID)

6. 先运行导出命令做出一个文本文件

EXPORT TO D:STAFF.TXT OF DEL SELECT * FROM STAFF

7. 然后运行装入命令把数据再装入到STAFF1表中

LOAD FROM D:STAFF.TXT OF DEL INSERT INTO STAFF1 FOR EXCEPTION STAFFEXP

由于表STAFF1中有唯一索引,所以会有一部分数据因为违反这个约束条件而不能插入到STAFF1表中,这些记录就会插入到异常表STAFFEXP中。

注意一点,异常表必须自己先定义好,装入命令不能够自动生成异常表,如果找不到指定的异常表,就会报错。

上一页  1 2 3 4 5 6  下一页

Tags:DB 数据 移动

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接