Oracle資料庫update觸發器

2021-07-06 10:52:43 字數 1210 閱讀 5891

在專案中使用到oracle資料庫的update觸發器,先記錄下來方便以後查閱。

預備知識和格式以後再編輯吧,先把內容貼出來。

create or replace trigger demo_trigger

after update on tb_goods

referencing new as new old as old

for each row

when( new.amount = 10 or new.amount = 0)

declare

msg varchar2(100);

receiver number;

sender number;

gourl varchar2(200);

state varchar2(2);

-- params varchar2(30);

--pvalue number;

begin

msg := '您的商品' || :new.goodsname;

sender := 0;

state := '0';

gourl := 'goodsaction_query.action';

select s.user_id into receiver from tb_shop s where s.shop_id = :new.shopid;

if :new.amount = 10 then

msg := msg || '庫存數量不足10件,請及時**!';

insert into tb_message values (tb_message_seq.nextval ,msg ,sender ,receiver,state,gourl,'' ,'');

elsif :new.amount = 0 then

--new.state := '1';

msg := msg || '庫存數量已為0件,已下架!';

insert into tb_message values (tb_message_seq.nextval ,msg ,sender ,receiver,state,gourl,'' ,'');

--更新狀態為 : 下架

update tb_goods g set g.state = 1 where goodsid = :new.goodsid;

end if;

end;

oracle資料庫 update更新多表總結

總體原則 1 更新的時候一定要加where條件,否則必然引起該字段的所有記錄更新 2 跨表更新時,set和where時,儘量減少掃瞄次數,從而提高優化 update更新例項 1 最簡單的形式 單錶更新 sql 經確認customers表中所有customer id小於1000均為 北京 1000以內...

資料庫update死鎖

比較常見的死鎖場景,併發批量update時的乙個場景 update cross marketing set gmtmodified now pageview pageview extpageview where marketingid marketingid 第一次呼叫時,marketingid傳入...

資料庫學習 update(批量更新)

資料更新update命令 用指定要求的值更新指定表中滿足天劍的資料的指定列的值 語法形式 update 表名 set 列名 表示式 子查詢 列名 表示式 子查詢 where 條件表示式 示例 1 將所有教師工資上調 10 原表資料 執行兩次後結果 2 將所有計算機學院的老師工資上調 10 updat...