日期:2014-05-17  浏览次数:20813 次

如何写这样的insert&update触发器
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;

------解决方案--------------------
create or replace trigger a_trigger
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;
------解决方案--------------------
插入用的

Create Trigger truStudent
On a
for Insert
As
if Insert(id,name)
begin
Update a
Set createddate=sysdate
Where id=new.id
end

更新用的情况,你想保存更新前的时间戳到哪里啊?