Sql 添加新列时未触发Teradata更新触发器

Sql 添加新列时未触发Teradata更新触发器,sql,triggers,teradata,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, ); 使用更新前触发器自动将上次更新的值设置为行上次修改的时间戳: CREATE TRIGGER x_trig_bu BE

我有一张桌子

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,
);
使用更新前触发器自动将上次更新的值设置为行上次修改的时间戳:

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)中创建一个新列时,默认的'YN',最后更新的\u不会改变


如何在表中添加或删除列时自动更新上次更新的内容?

您只能在插入、更新、删除或合并时执行触发器。 没有在ALTER TABLE上执行触发器的选项


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

您只能在插入、更新、删除或合并时执行触发器。 没有在ALTER TABLE上执行触发器的选项


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

我不相信BEFORE触发器会对该表触发DDL语句。但是,数据字典表有一个名为LastAlterTimeStamp的timestamp列,它捕获上次DDL语句所在的点还应该有一个名为RequestText的列,该列捕获针对该表发出的DDL语句(即DROP INDEX、ALTER table等)我不相信BEFORE触发器会针对该表触发DDL语句。但是,数据字典表有一个名为LastAlterTimeStamp的时间戳列,用于捕获针对该表发出最后一条DDL语句的点。还应该有一个名为RequestText的列,用于捕获发出的DDL语句d对照表格(即删除索引、更改表格等)