婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > oracle 觸發器 實現出入庫

oracle 觸發器 實現出入庫

熱門標簽:廣州市400電話辦理 地圖標注原件 南通防封外呼系統運營商 淮安自動外呼系統開發 語音電話機器人缺點 百變地圖標注 語音電話機器人營銷方案 修改高德地圖標注 宜賓外呼系統廠家
用語言實現
好處:
1、可以減少對數據庫的訪問。
2、可移植性好。
壞處:
1、操作起來考慮的東西較多,修改一處就要修改別一處。也就是說是相互關聯的。如果少改了某一處,很可能使數據不一致。
用觸發器實現
好處:
1、可以使程序員從復雜的相互關聯中解放出來,把精力放在復雜的業務上。
壞處:
1、可移植性差。
下面我就用一個例子實現一個簡單的出入庫。因為是例子表中所用到的字段很少。這里的例子只做為拋磚引玉。
數據表為入庫金額表(以下簡稱入庫表)income,出庫金額表(以下簡稱出庫表)outlay,余額表balance
復制代碼 代碼如下:

income{
id number;
pay_amount number;(入庫金額字段)
}
outlay{
id number;
outlay_amount number;(出庫金額字段)
}
balance
{
id number;
balance number;(余額字段)
}

下面分別在入庫和出庫表中建立觸發器
入庫表(income):
復制代碼 代碼如下:

CREATE TRIGGER "AA"."TRI_ADD" AFTER
INSERT
OR DELETE ON "INCOME" FOR EACH ROW begin
if deleting then
update balance set balance = nvl(balance,0) - :old.pay_amount;
elsif updating then
update balance set balance = nvl(balance,0) - :old.pay_amount + :new.pay_amount;
else
update balance set balance = nvl(balance,0) + :new.pay_amount;
end if;
end;

出庫表(outlay):
復制代碼 代碼如下:

CREATE TRIGGER "AA"."TRI_CUT" AFTER
INSERT
OR DELETE
OR UPDATE ON "OUTLAY" FOR EACH ROW begin
if deleting then
update balance set balance = nvl(balance,0) + :old.outlay_amount;
elsif updating then
update balance set balance = nvl(balance,0) + :old.outlay_amount - :new.outlay_amount;
else
update balance set balance = nvl(balance,0) - :new.outlay_amount;
end if;
end;

下面我解釋一下
oracle觸發器,觸發事件分為插入,刪除,更新列三種事件,分別對應inserting /deleting/updating關鍵字
可以用if語句分別實現
復制代碼 代碼如下:

if inserting then
-----
elsif updating then
-----
elsif deleting then
------
end if;

NVL(eExpression1, eExpression2)
如果 eExpression1 的計算結果為 null 值,則 NVL( ) 返回 eExpression2。
如果 eExpression1 的計算結果不是 null 值,則返回 eExpression1。eExpression1 和 eExpression2 可以是任意一種數據類型。
如果 eExpression1 與 eExpression2 的結果皆為 null 值,則 NVL( ) 返回 .NULL.。
這里插入和刪除就不說了。主要是更新操作,更新操作要注意的是更新應該是先減去舊值,在加上新值。
以上就是觸發器例子的實現。文章寫的不好請大家諒解。
您可能感興趣的文章:
  • Oracle觸發器實例代碼
  • Oracle觸發器表發生了變化 觸發器不能讀它的解決方法(必看)
  • Oracle使用觸發器和mysql中使用觸發器的案例比較
  • Oracle觸發器用法實例詳解
  • Oracle中使用觸發器(trigger)和序列(sequence)模擬實現自增列實例
  • oracle監控某表變動觸發器例子(監控增,刪,改)
  • [Oracle] 如何使用觸發器實現IP限制用戶登錄
  • oracle 存儲過程和觸發器復制數據
  • oracle 觸發器 學習筆記
  • 詳解oracle中通過觸發器記錄每個語句影響總行數

標簽:襄陽 南平 通化 股票投資 池州 南平 嘉峪關 聊城

巨人網絡通訊聲明:本文標題《oracle 觸發器 實現出入庫》,本文關鍵詞  oracle,觸發器,實,現出,入庫,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle 觸發器 實現出入庫》相關的同類信息!
  • 本頁收集關于oracle 觸發器 實現出入庫的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 肥西县| 龙井市| 建水县| 金溪县| 松江区| 南漳县| 安塞县| 九龙城区| 萝北县| 寿宁县| 娱乐| 上栗县| 宕昌县| 桑植县| 安宁市| 扶余县| 东港市| 福贡县| 花莲市| 康马县| 永靖县| 海淀区| 林州市| 新龙县| 太原市| 丰顺县| 商南县| 越西县| 信丰县| 岳阳县| 射阳县| 烟台市| 哈巴河县| 牙克石市| 靖西县| 沈阳市| 德惠市| 德保县| 庆城县| 普兰县| 门源|