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;

解决方案 »

  1.   

    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;
      

  2.   

    插入用的Create Trigger truStudent
       On a
       for Insert
    As
       if Insert(id,name)
       begin
         Update a
           Set createddate=sysdate
           Where id=new.id
       end更新用的情况,你想保存更新前的时间戳到哪里啊?