如何在Teradata表中为更新时的时间戳创建触发器?
我正在使用Teradata 14.00 在Teradata 14.00中,我有一个包含列(id、名称、城市、mytime)的表 如果我们更新名称,“mytime”列中的时间戳应该自动更新,而不必在update语句中指定它 如何对此使用触发器 任何建议。如何在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
提前感谢这是一篇非常好的研究触发器的文章 为方便起见,这里是触发器的逐步创建 样本表
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子句(可选)。请阅读上面的链接以获取帮助。