白日空想家 2018-10-09 18:49 采纳率: 66.7%
浏览 709

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

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 00: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 pkg-types,vite,d
  • ¥15 损失匹配问题,求解答
  • ¥15 3500常用汉字书法体检测数据集下载
  • ¥15 odoo17在制造模块或采购模块良品与次品如何分流和在质检模块下如何开发
  • ¥15 Qt音乐播放器的音乐文件相对路径怎么写
  • ¥15 VB.NET利用摄像头拍照的程序
  • ¥15 linux下vscode设置不了字连体
  • ¥20 游戏mod是如何制作的
  • ¥15 关于#hadoop#的问题:按照老师上课讲的步骤写的
  • ¥20 有人会用这个工具箱吗 付fei咨询