我正在尝试通过以下方式创建存档。创建了我要从中存档的表的副本,并添加了一个名为 DATA_PERIOD 的列。我的想法是创建一个触发器,在用原始表中的数据插入该表后,DATA_PERIOD 将更新为 current_timestamp。这是我写的代码。
CREATE TRIGGER ORDERS_SUMMARY_ARCHIVE
AFTER INSERT ON GDTS.ORDERS_SUMMARY_A
FOR EACH ROW
WHEN (DATA_PERIOD IS NULL)
UPDATE GDTS.ORDERS_SUMMARY_A SET DATA_PERIOD = CURRENT_TIMESTAMP
所以当表被填充时,时间戳被插入。
不确定是否有更好的方法来做到这一点。我在一本知识书中找到了这个陈述,并试图根据我的需要对其进行调整,但没有成功。
"DATA_PERIOD" is not valid in the context where it is used.. SQLCODE=-206, SQLSTATE=42703, DRIVER=3.68.61
我是否需要某种对条件表的引用?
谢谢
最佳答案
我认为您需要一个 before
插入触发器。如果我的 DB2 语法正确:
CREATE TRIGGER ORDERS_SUMMARY_ARCHIVE BEFORE INSERT ON GDTS.ORDERS_SUMMARY_A
FOR EACH ROW WHEN (DATA_PERIOD IS NULL)
SET DATA_PERIOD = CURRENT_TIMESTAMP;
关于sql - 插入后为当前时间戳更新创建触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51199975/