我有这种形式的触发器:
创建触发器 TBP701_UPDATE TBP701 更新后 将旧引用为 OLD_ROW 新作为 NEW_ROW 每一行 模式 DB2SQL 插入 TBP702(ID、IRN、事件、旧值、新值、用户、进入时间) 值(默认值,NEW_ROW。COLUMN1,'BUYBACK_ADD', '{"column1":"' CONCAT OLD_ROW . COLUMN1 CONCAT '","column2":"' CONCAT OLD_ROW . COLUMN2 CONCAT '","column3":"' CONCAT OLD_ROW . COLUMN3 CONCAT '"}' , '{"column1":"' CONCAT NEW_ROW . COLUMN1 CONCAT '","column2":"' CONCAT NEW_ROW . COLUMN2 CONCAT '","column3":"' CONCAT NEW_ROW . COLUMN3 CONCAT '"}' , 用户,CURRENT_TIMESTAMP);
我需要将 tbp701 中的旧值和新值以 json 格式插入到新表中。在上面的查询中,我对 JSON 字符串进行了硬编码;但我需要在 100 多个表上编写这样的触发器。所以我需要一个可以接受以下两个参数的sql函数
- 来自触发器的 NEW_ROW/OLD_ROW 引用和
- 表名
它应该返回 json 字符串,其中包含触发触发器的特定表和行的所有列。然后我可以为我的所有触发器重用该函数。
我是 db2 概念中这些高级特性的新手。所以一个描述性的答案将不胜感激。
谢谢。