`
weiruan85
  • 浏览: 384122 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

load自增字段的处理

    博客分类:
  • db2
阅读更多

5.处理数据库表中的自增字段

对于需要加载的含有自增字段的表,即该表的 ixf 数据文件中有自增列的值, 可以在 load 命令中加入如下参数控制自增字段值:
1). modified by identityignore :加载的数据文件中有自增字段值,load 时忽略数据文件中自增字段值 ;
2). modified by identitymissing :加载的数据文件中没有自增字段值,load 时自动生成自增字段值 ;
3). modified by identityoverride :加载的数据文件中有自增字段值,load 时使用数据文件中的自增字段值 。


为了使目标数据库中含有自增字段的表中数据与源数据库中的数据保持一致,本文实例中选择使用 modified by identityoverride 参数,在导入数据时使用数据文件中的自增字段值。读者可以根据不同情况选择适当的控制参数。

for example:
   db2 load from test.ixf of ixf modified by identityoverride insert into TEST;


CREATE PROCEDURE "ARS"."CREATE_IDENT"
(OUT "O_MSG" VARCHAR(500)
)
  SPECIFIC "ARS"."CREATE_IDENT"
  LANGUAGE SQL
  NOT DETERMINISTIC
  CALLED ON NULL INPUT
  EXTERNAL ACTION
  OLD SAVEPOINT LEVEL
  MODIFIES SQL DATA
  INHERIT SPECIAL REGISTERS
  begin
  
     declare v_max bigint;
declare v_sql varchar(500) default '';
DECLARE GLOBAL TEMPORARY TABLE SESSION.v_int
     (
      max_id decimal(22,0)
     )ON COMMIT PRESERVE ROWS NOT LOGGED WITH REPLACE;
     
for v_cur as select name,TBNAME from SYSIBM.SYSCOLUMNS where  IDENTITY = 'Y' and TBCREATOR = 'ARS'
do
     delete from SESSION.v_int;
     set v_sql = ' insert into SESSION.v_int values(' ||'select coalesce(max('||v_cur.name||')+1,0) from '||v_cur.tbname||')';
set o_msg = v_Sql;
execute immediate v_sql;
select max_id into v_max from SESSION.v_int;
set v_sql =' alter table  '||v_cur.tbname||' alter ' ||v_cur.name||' restart with '||rtrim(ltrim(char(v_max)));
         execute immediate v_sql;
         set o_msg = v_Sql;
end for;
end;


---syscolumns 列数据。
select * from SYSIBM.SYSCOLUMNS where identity='Y';

---更改自增列。
  alter table ars.test alter id restart with 8;
 
分享到:
评论

相关推荐

    sqlldr导入带有自动增加的数据

    当涉及到处理带有自动增加字段的表时,SQL*Loader提供了一些灵活的方法来确保数据的正确加载,同时维护表结构的完整性。以下是对“sqlldr导入带有自动增加的数据”这一主题的详细解析,基于给定的文件信息。 ### ...

    2-Gbase导入csv文件教程(csv不要用Excel打开)

    2-Gbase导入csv文件教程(csv不要用Excel打开)

    通过id自增做增量加载.rar

    在IT行业中,ETL(Extract, Transform, Load)是一种数据处理方法,用于从不同的源系统中提取数据,对其进行转换以适应目标系统的要求,然后加载到目的地。Kettle是一款开源的数据集成工具,由Pentaho公司开发,它...

    中文版DataLoad导入导出工具

    4. **错误处理与日志记录**:在导入导出过程中,DataLoad会自动检测和报告潜在的数据错误,如格式不匹配、字段溢出等,并生成详细的操作日志,便于用户分析和解决问题。 5. **用户友好界面**:考虑到中国用户的使用...

    DB2在WIN上的迁移

    9. **自增字段问题**:在导入包含自增字段的表时,可能遇到错误。如果新环境中的自增序列与旧环境不一致,会导致加载失败。解决这个问题通常需要手动调整自增字段的初始值或者使用特定的加载选项。 10. **错误排查*...

    MySQL中由load data语句引起死锁的解决案例

    当执行插入操作且涉及自增字段时,系统会先获取自增锁,确定下一个自增值,然后进行插入,最后释放自增锁。`innodb_autoinc_lock_mode`参数控制着自增锁的行为。默认情况下,该参数为1,但在某些操作如`LOAD DATA IN...

    load_data_incr_sqoop.zip

    在本例中,可能使用的是基于时间戳的方法,通过比较SQL Server表中的时间戳字段和Hive中的最新时间戳来确定新数据。 3. **--check-column**:此参数用于指定用于增量检查的列,通常是时间戳列。 4. **--last-value...

    我的数据库复习.docx

    `DELETE`允许指定条件删除,`TRUNCATE`则清空表,且速度更快,但不保留自增字段的初始值。 七、数据查询 查询数据涉及`SELECT`语句,基本格式是`SELECT 列名 FROM 数据表名 WHERE 查询条件 GROUP BY 分组字段 ...

    Kettle根据ID增量更新.zip

    Kettle(也称为Pentaho Data Integration,简称PDI)是一款强大的ETL(Extract, Transform, Load)工具,它允许用户从各种数据源抽取数据,进行转换,并加载到目标系统中。在这个"Kettle根据ID增量更新.zip"压缩包中...

    2021-2022计算机二级等级考试试题及答案No.11718.docx

    【知识点详解】 1. 报表数据来源:报表的数据可以来源于单个表、多个表创建的查询,但不是多个表本身。...28. MySQL自增字段:AUTO_INCREMENT关键字用于定义MySQL中的自增字段,每次插入新记录时自动递增。

    hibernate需要用到的core及annotations jar包

    比如@Entity表示一个类作为数据库表的映射,@Table指定了对应的数据库表,@Id定义主键,@GeneratedValue处理自增字段,@Column定义字段属性等。这些注解使得代码更加简洁,易于理解和维护。 3. Hibernate Query ...

    原创Kettle数据预处理实验报告

    同样地,获取最大更新时间,从多个表(store、address、city、country)中获取客户信息,调整数据类型和格式,处理active字段,并处理缓慢变化维度表,更新customer_version_number,设置customer_key为自增主键。...

    c链接access数据库.pdf

    在插入数据后,可以使用以下方法来取得自增标识字段的 ID 值: cmd.CommandText = @"select @@identity"; int value = Int32.Parse(cmd.ExecuteScalar().ToString()); return value; 四、执行事务 使用 ...

    hibernate最新版本5.2.3所有jar包

    例如,`@Entity`注解标识一个类为数据库中的表,`@Id`定义主键,`@GeneratedValue`处理自增字段等。 3. **查询语言**: - Hibernate Query Language (HQL) 是一种面向对象的查询语言,类似于SQL,但操作的是对象而...

    Hibernate API帮助文档

    例如,@Entity标识一个Java类为实体,@Table指定对应的数据库表,@Id定义主键,@GeneratedValue处理自增字段。 四、Session操作 1. 保存和更新:使用save()或saveOrUpdate()方法可将对象持久化到数据库,update()...

    hibernate联合主键全攻略

    - **查询**:使用`createCriteria()`结合`Restrictions.eq()`等条件过滤器进行查询,注意当查询联合主键的一部分时,可能需要额外处理以避免结果集的不确定性。 #### 4. 特别注意事项 - 在使用联合主键时,确保...

    用VB的代码创建Access数据库归类.pdf

    接下来,我们将深入了解一下创建复杂表结构的例子,包括自增字段和非空限制: ```vb ' 增加一个自动增长的字段 Dim col As ADOX.Column Set col = New ADOX.Column col.ParentCatalog = cat col.Type = ADOX....

    MySql5.0命令全集

    **注意:**`TRUNCATE TABLE` 是一种更快更高效的清空表数据的方法,同时它也会重置自增字段的值。 ### 十四、增加字段 **命令格式:** ``` ALTER TABLE <表名> ADD COLUMN <字段名> <类型> DEFAULT <默认值>; ``` ...

Global site tag (gtag.js) - Google Analytics