觸發器是我們在開發過程中經常使用的,在此記錄一下編寫語法要求:
行級觸發器 / 語句級觸發器:
create [ or replace ] trigger trigger_name
after | before insert | update | delete [ of column ] on [ schema. ]table_name
[ for each row ]
begin
業務語句…
end;
解釋:.1. [ ] 中的語句可以使用也可以不使用,視情況而定,( [ of column ] 指定某一字段或多個字段、[ schema. ]指定表空間、[ for each row ]表示寫了for each row時代表為行級觸發器,沒有寫表示為語句級觸發器【行級觸發器:只要表中的每條資料滿足觸發器的觸發條件時就會執行,整個過程觸發器可能會執行多次;語句級觸發器:滿足觸發器的觸發條件時,觸發器只執行一次】 )
2. after | before :表示在進行 增加 / 修改 / 刪除 操作之前還是之後執行觸發器
3. 在begin … end 中間編寫我們需要的業務sql,本人目前只學習了for…in…loop…end loop(迴圈),if… then…end if(選擇)使用語法;
4. declare關鍵字用來在begin之前聲名乙個區域性變數,( 例:declare variable_name varchar2(100) );
5. 觸發器還有:替換觸發器和系統觸發器,此處只列舉了行級觸發器和語句級觸發器;
6. :new 代表操作後的新的字段值、:old代表操作之前原來的字段值(例 :new.欄位名、:old.欄位名)
不足之處請各位大神指正
Oracle Trigger簡單用法
1.trigger 是自動提交的,不用commit,rollback 2.trigger最大為32k,如果有複雜的應用可以通過在trigger裡呼叫procedure或function來實現。3.語法 create or replace trigger on declare begin except...
oracle trigger跨使用者報錯
問題描述 資料庫中有兩個使用者 cms和oss,我要實現在cms使用者下插入一條記錄然後通過trigger同步插入到oss使用者中的某個表中去,但是create trigger的時候總是報錯,提示oss下的那個表或檢視不存在。問題原因 這是由於oss使用者的表沒有對cms使用者開放許可權造成的。解決...
php 編寫mysql php mysql 編寫
表單資料插入 表單資料插入 if get act insert error reporting 0 禁止錯誤輸出 mysql query set names utf 8 con mysql connect localhost 3306 root 1234 建立資料庫連 mysql select db...