我想将两个时间戳列附加到现有表中。 插入记录时,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(?,?,?,?,?,?,?,?,?,?)
失败
指定的值的数量与数量不同 指定或隐含的列或变量..
有没有办法绕过这个问题,而不必检查所有现有的查询(有数百个...)
答案 0 :(得分:2)
如果在创建列时添加IMPLICITLY HIDDEN
选项,SQL语句将忽略它们,除非明确提及这些列。
PS。我假设您使用的是最新版本的DB2,因为您使用的是row change timestamp
。为避免歧义,您应该指出有问题的DB2版本和平台。