表a
字段
id
name表b
id
name
status表b中字段就只有status不相同现在想在表a上做触发器 让b表中相同的那两个字段值和a表中保持相同也就是a表中增 删除 修改时 b表中的那两个字段id name和a表中的是一样的 值

解决方案 »

  1.   

    写过了 不行嘛if inserting Then
         insert into sync_package(package_id,object_id,plan_id,package_name,parent_package_id,package_price,package_status,package_order,company_id,department_id,create_user_id,create_date,update_user_id,update_date,competency,file_name,file_dir,proj_company_name,material_name,engineering_name,is_create_html,is_read,detail_price_temp_id,price_temp_id,is_open,amount,unit_name,package_type,bid_base,high_price,float_rate,signsection_id,standby_order,is_upload_needed)select * from la_package pa where pa.package_id=:new.package_id;   end if;
    我这个插入就有问题
      

  2.   

    你这个是发生了变异表问题
    不能去读触发器的表了
    insert into sync_package(....) values(:new. ...);
      

  3.   


    ---触发器 写法create or replace trigger before insert or update or delete on a for each row
    begin
    if inserting then
    insert into b(id,name) values(:new.id,:new.name);
    elsif updating then
    update b set name=:new.name where id=:new.id;
    elsif deleting then
    delete from b where id=:old.id;
    end if;
    end;
      

  4.   

    insert into sync_package(....) select * from la_package;——不是这么写的吧?
    insert into sync_package select * from la_package;——这样试试!
      

  5.   

    后面的语句里可以加一个常量值:
    insert into sync_package select a.*,'' from la_package a;