如何在Teradata表中为更新时的时间戳创建触发器?

如何在Teradata表中为更新时的时间戳创建触发器?,teradata,Teradata,我正在使用Teradata 14.00 在Teradata 14.00中,我有一个包含列(id、名称、城市、mytime)的表 如果我们更新名称,“mytime”列中的时间戳应该自动更新,而不必在update语句中指定它 如何对此使用触发器 任何建议。 提前感谢这是一篇非常好的研究触发器的文章 为方便起见,这里是触发器的逐步创建 样本表 Temp Table for your refernce :- drop table DB_SOK.EMPLOYEE; CREATE MULTISET TABL

我正在使用Teradata 14.00

在Teradata 14.00中,我有一个包含列(id、名称、城市、mytime)的表

如果我们更新名称,“mytime”列中的时间戳应该自动更新,而不必在update语句中指定它

如何对此使用触发器

任何建议。

提前感谢

这是一篇非常好的研究触发器的文章

为方便起见,这里是触发器的逐步创建

样本表

Temp Table for your refernce :-
drop table DB_SOK.EMPLOYEE;
CREATE MULTISET TABLE DB_SOK.EMPLOYEE
( Employeeid INTEGER,
Employeename CHAR(30),
Salary INTEGER,
city varchar(100),
mytime timestamp(0));

insert into DB_SOK.EMPLOYEE values(1,'happy',100,'NYC',current_timestamp(0));

Select * from DB_SOK.EMPLOYEE;

Employeeid  Employeename    Salary  city    mytime
1               1           happy    100    NYC 11/7/2015 08:51:05
然后为每一行创建一个更新触发器

Replace  TRIGGER DB_SOK.EmpUpdate
AFTER UPDATE OF (Employeename) ON DB_SOK.EMPLOYEE
REFERENCING OLD ROW as EMPLOYEE_old_row
 NEW row  as EMPLOYEE_new_row
 FOR EACH ROW
update DB_SOK.EMPLOYEE
set mytime=current_timestamp(0)
消防更新:-

update DB_SOK.EMPLOYEE
set  Employeename ='Hello Happy'
where Employeeid=1;
再次选择数据,查看数据是否更新

Select * from DB_SOK.EMPLOYEE;

Employeeid  Employeename    Salary  city    mytime
1   1   Hello Happy                     100 NYC 11/7/2015 09:02:23

非常感谢..因为replycommand正在工作,但“mytime”列中的所有值都已更新为当前值timestamp@Deepthy这就是触发器中定义的。您需要根据需要进行更改。如何指定仅更新所需行的时间戳的条件?任何建议。@Deepthy…您可以在for之后使用when子句(可选)。请阅读上面的链接以获取帮助。