db2菜鸟使用db2过程中,遇到很多问题,无奈有关db2的资料实在是少,在工作中遇到db2导入的问题,看到这边文章解析的不错,摘抄一部分过来,以后备用,摘抄地址:http://blog.itpub.net/25744374/viewspace-750594/
一、IMPORT的五种方式:
导入可使用五种方式,它们用于确定导入数据的方法。前三种方式为INSERT、INSERT_UPDATE和REPLACE,在目标表已存在的情况下使用。这三种方式都支持IXF、WSF、ASC和DEL数据格式。但是,只有INSERT和INSERT_UPDATE可与昵称配合使用。
INSERT | 将输入数据插入到目标表中而不更改现有数据 |
INSERT_UPDATE | 使用输入行的值更新具有匹配主键值的行,如果没有匹配行,那么会将已导入行插入到表中。 |
REPLACE | 删除所有现有数据并插入已导入数据,同时保留表和索引定义 |
另外两种方式为REPLACE_CREATE和CREATE,在目标表不存在时使用。它们只能与PC/IXF格式的输入文件配合使用,此格式包含要创建的表的结构描述。如果对象表具有自身以外的任何从属,那么不能以这些方式执行导入。建议不使用IMPORT的CREATE和REPLACE_CREATE方式,改用db2look实用程序。
REPLACE_CREATE | 删除所有现有数据并插入已导入数据,同时保留表和索引定义;如果目标表和索引不存在,那么创建目标表和索引 |
CREATE | 创建目标表和索引;可指定在其中创建新表的表空间名称 |
二、IMPORT工作步骤:
1、锁定表
根据是否允许对表进行并行访问,IMPORT会获取对现有目标表的独占(X)或非独占(IX)锁定。
2、查找和检索数据
IMPORT使用FROM子句来查找输入数据。如果命令指示XML或LOB数据存在,那么IMPORT会查找此数据。
3、插入数据
IMPORT会替换现有数据或将新的数据行添加至表。
4、检查约束和激发触发器
写入数据后,IMPORT会确保每个已插入行符合针对目标表定义的约束。有关被拒绝行的信息将写至消息文件。IMPORT还会激发现有触发器。
5、落实操作
IMPORT会保存所作更改并释放针对目标表的锁定。还可指定在导入期间定期落实。
三、IMPORT所需权限
凭借DATAACCESS权限可以执行任何类型的导入操作。以下是执行相应导入类型的其他权限:
INSERT | CONTROL或INSERT和SELECT |
INSERT_UPDATE | CONTROL或INSERT、SELECT、UPDATE、DELETE |
REPLACE | CONTROL或INSERT、SELECT、DELETE |
REPLACE_CREATE | 目标表存在时:CONTROL或INSERT、SELECT、DELETE 目标表不存在时:CREATETAB(针对数据库)、USE(针对表空间),以及模式不存在时:IMPLICIT_SCHEMA(针对数据库)或模式存在时:CREATEIN(针对模式) |
CREATE | CREATETAB(针对数据库)和USE(针对表空间),以及模式不存在时:IMPLICIT_SCHEMA(针对数据库)或模式存在时:CREATEIN(针对模式) |