麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

oracle 觸發(fā)器 實(shí)現(xiàn)出入庫(kù)

2024-08-29 13:56:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
用語(yǔ)言實(shí)現(xiàn)
好處:
1、可以減少對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。
2、可移植性好。
壞處:
1、操作起來(lái)考慮的東西較多,修改一處就要修改別一處。也就是說(shuō)是相互關(guān)聯(lián)的。如果少改了某一處,很可能使數(shù)據(jù)不一致。
用觸發(fā)器實(shí)現(xiàn)
好處:
1、可以使程序員從復(fù)雜的相互關(guān)聯(lián)中解放出來(lái),把精力放在復(fù)雜的業(yè)務(wù)上。
壞處:
1、可移植性差。
下面我就用一個(gè)例子實(shí)現(xiàn)一個(gè)簡(jiǎn)單的出入庫(kù)。因?yàn)槭抢颖碇兴玫降淖侄魏苌佟_@里的例子只做為拋磚引玉。
數(shù)據(jù)表為入庫(kù)金額表(以下簡(jiǎn)稱入庫(kù)表)income,出庫(kù)金額表(以下簡(jiǎn)稱出庫(kù)表)outlay,余額表balance

復(fù)制代碼 代碼如下:


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


下面分別在入庫(kù)和出庫(kù)表中建立觸發(fā)器
入庫(kù)表(income):

復(fù)制代碼 代碼如下:


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;


出庫(kù)表(outlay):

復(fù)制代碼 代碼如下:


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觸發(fā)器,觸發(fā)事件分為插入,刪除,更新列三種事件,分別對(duì)應(yīng)inserting /deleting/updating關(guān)鍵字
可以用if語(yǔ)句分別實(shí)現(xiàn)

復(fù)制代碼 代碼如下:


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


NVL(eExpression1, eExpression2)
如果 eExpression1 的計(jì)算結(jié)果為 null 值,則 NVL( ) 返回 eExpression2。
如果 eExpression1 的計(jì)算結(jié)果不是 null 值,則返回 eExpression1。eExpression1 和 eExpression2 可以是任意一種數(shù)據(jù)類型。
如果 eExpression1 與 eExpression2 的結(jié)果皆為 null 值,則 NVL( ) 返回 .NULL.。
這里插入和刪除就不說(shuō)了。主要是更新操作,更新操作要注意的是更新應(yīng)該是先減去舊值,在加上新值。
以上就是觸發(fā)器例子的實(shí)現(xiàn)。文章寫的不好請(qǐng)大家諒解。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国内精品久久久久影院不卡 | 国产欧美日韩视频在线观看 | 欧美一a一片一级一片 | 偷偷操偷偷操 | 成人福利视频在线 | 久久久av亚洲男天堂 | 日日噜噜噜夜夜狠狠久久蜜桃 | 小视频在线看 | 日韩 欧美 中文 | 欧美视频国产精品 | 国产91久久精品一区二区 | 亚洲一区二区三区精品在线观看 | 久久69精品久久久久久国产越南 | 欧美亚洲免费 | 亚洲成人福利在线 | 成人国产免费观看 | 国产在线精品一区二区不卡 | 黄污在线观看 | 一级黄色毛片a | 国产亚洲精品成人 | 国产精品自拍啪啪 | 综合毛片| 成人区一区二区 | 久久草在线观看视频 | 毛片小网站 | 免费观看又色又爽又黄的崩锅 | 精品国产乱码久久久久久久 | av在线高清观看 | 日韩精品二区 | 免费毛片电影 | 欧美大胆xxxx肉体摄影 | 成av在线| 免费在线观看亚洲 | 成年免费在线视频 | www.91pron| 牛牛a级毛片在线播放 | 国产精品hd免费观看 | 精品一区二区久久久久久久网精 | 国产成人高清在线观看 | 国产午夜精品理论片a级探花 | 黄色特级片黄色特级片 |