關於觸發器(Trigger)對於變異表(Mutating table)的操作

很多時候需要在觸發器中對觸發表進行查詢,但在行級觸發器中是不允許的。

 

下面用HR用戶的employees表進行簡單的說明。

虛擬需求:對新加入的員工的工資和更新員工的工資時,不能設置為比該員工的上司的工資高。

 

首先,建立一個after的行級觸發器

 

然後,運行insert語句和update語句都報

ORA-04091: 表 HR.EMPLOYEES 发生了变化, 触发器/函数不能读它

如下:

 

這時就需要另一種方法了。

 

首先,需要創建一個包(Package)來保存員工的上司ID和員工的新工資。

 

然後,從新創建一個行級觸發器和語句級觸發器。

 

測試

 

這樣就可以用觸發器作出這樣的約束了。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值