table a(id, name, createddate) 表数据如下, 现在要写一个触发器, 实现以下功能.
id name createddate
1 china 2012-08-01当用户插入数据(只对id和name写入数据), 例如: insert into a(id, name) values(2, 'us');
需要触发器更新createddate=sysdate.当用户更新数据(只把createddate置为null), 例如: update a set createddate=null where id =1;
需要触发器保留之前的时间戳,也就是例子里的2012-08-01;
id name createddate
1 china 2012-08-01当用户插入数据(只对id和name写入数据), 例如: insert into a(id, name) values(2, 'us');
需要触发器更新createddate=sysdate.当用户更新数据(只把createddate置为null), 例如: update a set createddate=null where id =1;
需要触发器保留之前的时间戳,也就是例子里的2012-08-01;
before update or insert on a
for each row
begin
if (inserting) then
select sysdate into :new.created from dual;
else
:new.created := :old.created;
end if;
end;
On a
for Insert
As
if Insert(id,name)
begin
Update a
Set createddate=sysdate
Where id=new.id
end更新用的情况,你想保存更新前的时间戳到哪里啊?