添加新列

时间:2017-06-12 08:30:10

标签: sql triggers teradata

我有一张桌子

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?

1 个答案:

答案 0 :(得分:0)

您只能在INSERT,UPDATE,DELETE或MERGE上执行触发器。 没有选项在ALTER TABLE上执行触发器。

有一个表dbc.tables,其中包含有关何时上次更改表的信息,您可以尝试设置触发器。