我有一张桌子
CREATE TABLE x (
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),
name VARCHAR(255),
last_updated TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
);
使用BEFORE UPDATE触发器自动将last_updated的值设置为该行的最后一次修改的时间戳:
CREATE TRIGGER x_trig_bu
BEFORE UPDATE ON x
REFERENCING NEW AS newrow
FOR EACH ROW
SET newrow.last_updated = CURRENT_TIMESTAMP(0);
但是,当我在表格中创建一个新列时(ALTER TABLE x ADD dummy CHAR(2)DEFAULT'YN',last_updated不会改变。
如何在表格中添加或删除列时自动更新last_updated?
答案 0 :(得分:0)
您只能在INSERT,UPDATE,DELETE或MERGE上执行触发器。 没有选项在ALTER TABLE上执行触发器。
有一个表dbc.tables,其中包含有关何时上次更改表的信息,您可以尝试设置触发器。