白日空想家 2018-10-10 02:49 采纳率: 66.7%
浏览 708

语句没报错但修改数据不触发是为什么?

create or replace trigger t1
before update of sal,comm on emp
for each row
begin
if :new.sal+:new.comm >20000 then
raise_application_error(-20010,'总工资太高');
end if;
end;

  • 写回答

1条回答

  • CZ__ 2018-10-10 08:13
    关注

    我执行没有问题,正常触发异常

    CREATE OR REPLACE TRIGGER t1
    BEFORE UPDATE OF sal,comm ON emp
    FOR EACH ROW
    BEGIN
      IF :new.sal+:new.comm > 20000 THEN
        raise_application_error(-20010,'总工资太高');
      END IF;
    END;
    

    Script Output输出的信息:

    Error starting at line : 661 in command -
    UPDATE emp SET sal=18000,comm=3000 WHERE id=1
    Error report -
    SQL Error: ORA-20010: 总工资太高
    ORA-06512: at "IIS.T1", line 3
    ORA-04088: error during execution of trigger 'IIS.T1'
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Jenkins+k8s部署slave节点offline
  • ¥15 微信小游戏反编译后,出现找不到分包的情况
  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题