我需要创建一个报告,返回其帐户类型已更改为account_types列表或从该列表更改的客户帐户:('CAM','camad','amhd','hamhdad','DIST','DISTADP','GAM','damp','LAM','amadp'(。
假设我今天有一张桌子:
客户端 | account_type | customer_org_IDinsert_date | 更新日期active_Y_N | 谷歌游戏|
---|---|---|---|---|
Netflix | LAM | C000002 | 2006-05-04 09:15:34 | 2021-09-04 08:35:34 | Y
NordstromCostco | ||||
波音公司 | CAMHD | |||
三星 |
尝试将mytab
更改为真实的表名。
ALTER TABLE mytab ADD UPDATE_AT_DATE TIMESTAMP;
CREATE OR REPLACE TRIGGER mytab_BUR
BEFORE UPDATE OF ACCOUNT_TYPE ON mytab
REFERENCING NEW AS N OLD AS O
FOR EACH ROW
WHEN
(
-- O.ACCOUNT_TYPE IS DISTINCT FROM N.ACCOUNT_TYPE
-- AND
-- (
O.ACCOUNT_TYPE IN ('CAM','CAMADP','CAMHD','CAMHDADP','DIST','DISTADP','GAM','GAMADP','LAM','LAMADP')
OR N.ACCOUNT_TYPE IN ('CAM','CAMADP','CAMHD','CAMHDADP','DIST','DISTADP','GAM','GAMADP','LAM','LAMADP')
-- )
)
SET N.UPDATE_AT_DATE = CURRENT TIMESTAMP
;
如果您的应用程序可能会使用与现有值相同的值更新ACCOUNT_TYPE
列,并且在这种情况下您不想更新新的UPDATE_AT_DATE
列值,则可以取消注释注释行。
DB2的自由时态表特性,它是从版本10开始引入的。
不需要使用触发器,DB2可以自动管理
https://www.ibm.com/docs/en/db2/11.5?topic=tables-系统周期时间
https://philipkgunning.files.wordpress.com/2013/02/traveling-through-time-with-db2-time-travel-query3apr13.pdf