TIMESTAMP的DB2自动初始化和更新

时间:2014-07-21 18:26:27

标签: sql database database-design db2

我想将两个时间戳列附加到现有表中。 插入记录时,CREATED_TSTMP将填充当前时间戳,并且当表中的记录更新时,LAST_UPD_TSTMP将自动更新。

我想在不修改现有查询的情况下执行此操作。

我有以下DDL语句:

ALTER TABLE XXX ADD CREATED_TSTMP TIMESTAMP NOT NULL WITH DEFAULT CURRENT TIMESTAMP ;
alter table XXX add column LAST_UPD_TSTMP timestamp not null generated by default for each row on update as row change timestamp ;

但是,一旦附加了列,这将导致使用以下语法的现有查询:

INSERT INTO XXX VALUES(?,?,?,?,?,?,?,?,?,?)

失败

  

指定的值的数量与数量不同   指定或隐含的列或变量..

有没有办法绕过这个问题,而不必检查所有现有的查询(有数百个...)

1 个答案:

答案 0 :(得分:2)

如果在创建列时添加IMPLICITLY HIDDEN选项,SQL语句将忽略它们,除非明确提及这些列。

PS。我假设您使用的是最新版本的DB2,因为您使用的是row change timestamp。为避免歧义,您应该指出有问题的DB2版本和平台。