日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tigger

發布時間:2023/12/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tigger 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

detail
?1?? 56
?2?? 85
?1?? 78
?2?? 96
?1?? 20
?2? 10
? 3? 20
report
?1? 154
?2? 191

當細表插入數據的時候,自動的在匯總表中進行匯總

觸發器
?什么時候觸發
? 在插入 detail表時觸發f


要進行判斷? ,例如我插入 1? 20 判斷 1在report中 是否已經存在,如果存在 則update
???????????????? 不存在 insert


在oracle 中 如果進行插入 首先會在內存中劃出一個區域用來臨時保存? 這個區域的名稱叫new???? new.id? new.price
??????????? 如果進行更新 首先會在內存中劃出一個區域用來臨時保存? 這個區域的名稱叫new old
????????????????????????? new用來保存你將存入的數據
????????????????????????? old用來保存將被你修改的老的數據
? ???? 如果進行刪除 首先會在內存中劃出一個區域用來臨時保存? 這個區域的名稱叫old


?create or replace trigger after_insert_getSum
? after insert
? on detail
?for each row
declare
?? isExit number(5) ; --用來保存
begin???????
?select count(*) into isExit from? report where id = :new.id;
??????? if (isExit > 0 ) then? --表示report表中已經存在,update
??update report set sumprice = sumprice + :new.price where id = :new.id;?
??????? else??? --表示report表中不存在,insert
???insert into report (id,sumprice) values (:new.id,:new.price);
??????? end if;
end;

?

序列的產生
在sql server中要使某個字段為自動增長字段有函數? IDENTITY(1,1)?
在oracle中是沒有這個函數的
(1)首先創建一個序列
?? CREATE SEQUENCE MYSEQUENCE INCREMENT BY 1 START WITH 1 MINVALUE 1 ORDER;
(2)創建觸發器使用上面的序列

?

for each row? --- 行級觸發器? 表示每行進行插入的時候進行觸發
沒有for each row? 表級觸發器??

raise 拋出一個自定義錯誤


if (inserting) then

end if
if(updating) then
end if

if(deleting) then
end if


?

總結

以上是生活随笔為你收集整理的tigger的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。