我正在使用Teradata 14.00
我在Teradata 14.00中有一个包含列(id,name,city,mytime)的表。
如果我们更新名称,那么&time;' mytime'列应该自动更新,而不必在Update语句中指定它。
如何使用触发器。
任何建议。
提前致谢
答案 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