2015-11-07 30 views
1

我正在使用Teradata 14.00如何在Teradata表中创建更新时间戳的触发器?

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

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

如何为此使用触发器。

有任何建议。
在此先感谢

回答

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 
+0

非常感谢您回复 – Deepthy

+0

@Deepthy解决了您的问题......? –

+0

命令正在工作,但'mytime'列中的所有值都更新为current_timestamp – Deepthy

相关问题