创建触发器
当交易信息表有插入或者修改记录,银行卡信息表跟随改变:如交易信息表新增一条支取,那么对应的银行信息卡余额应该减少对应支取的金额。同理如交易信息表新增一条存入,那么对应的银行信息卡余额应该增加对应存入的金额。注意:如果支取先判断余额,不足则提示。如交易成功打印恭喜信息。银行卡信息表:卡号,币种(人民币),存储类型(定期,活期),开户时间,开户金额,当前账目余额,密码,是否挂失,用户的ID
交易信息表:交易日期,卡号,交易类型,交易金额,备注

解决方案 »

  1.   

    感觉在需求上,只有insert 和 delete 是正常的交易,update 不应该有的;
      

  2.   

    create or replace trigger is 触发器名称 
    after insert on 交易表
    for each row
    declare
    v_ye number:=0;
    begin
    select 当前账目余额 into v_ye from 银行卡信息表 where 卡号==:new.卡号;
    if :new.交易类型='支取' then 
    if v_ye<:new.交易金额 then
    raise_application_error(-20044,'余额不足');
    else
    update 银行卡信息表 set 当前账目余额=(当前账目余额-:new.交易金额) where 卡号=:new.卡号;
    dbms_output.put_line('交易成功');
    end if;
    end if;
    if :new.交易类型='存入' then
    update 银行卡信息表 set 当前账目余额=(当前账目余额+:new.交易金额) where 卡号=:new.卡号;
    dbms_output.put_line('交易成功');
    end if;
    end;
    大概就是这样吧,具体的看你需求再改写就可以了