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

时间:2015-11-07 05:55:58

标签: teradata

我正在使用Teradata 14.00

我在Teradata 14.00中有一个包含列(id,name,city,mytime)的表。

如果我们更新名称,那么&time;' mytime'列应该自动更新,而不必在Update语句中指定它。

如何使用触发器。

任何建议。
提前致谢

1 个答案:

答案 0 :(得分:1)

这是一篇非常好的文章http://teradatafaqs.blogspot.in/p/tutorial.html,用于研究触发器。

为了您的轻松,这里是逐步创建触发器。

样本表

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