<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            Oracle觸發器創建及其功能

            時間:2024-11-05 19:26:12 Oracle認證 我要投稿
            • 相關推薦

            Oracle觸發器創建及其功能

              下面的文章主要介紹的是如何創建Oracle觸發器,同時介紹了Oracle觸發器的功能、語法,而且通過具體的例子可以讓大家更深入的掌握。

              1.創建表t1 :create table t1 (id number,name nvarchar(8));

              2.創建Oracle序列 :CREATE SEQUENCE t1_id INCREMENT BY 1 START WITH 1 MAXVALUE

              3.創建Oracle觸發器 :

              CREATE TRIGGER tig_insert_t1

              BEFORE INSERT ON "YINZQ"."T1"

              begin

              if (:new.id is null) then

              select t1_id.nextval into :new.id from dual; //其中的:new.id 指的是t1表中新行的列

              end if;

              end;

              4.Oracle觸發器功能

              觸發器是特定事件出現的時候,自動執行的代碼塊。類似于存儲過程,觸發器與存儲過程的區別在于:存儲過程是由用戶或應用程序顯式調用的,而觸發器是不能被直接調用的。

              功能:

              1)允許/限制對表的修改

              2)自動生成派生列,比如自增字段

              3)強制數據一致性

              4)提供審計和日志記錄

              5)防止無效的事務處理

              6)啟用復雜的業務邏輯

              5.觸發器觸發使用有兩種:after和before。

              Oracle觸發器的語法:

              CREATE [OR REPLACE] TIGGER觸發器名 觸發時間 觸發事件

              ON表名

              [FOR EACH ROW]

              BEGIN

              pl/sql語句

              END

              1)觸發器名:觸發器對象的名稱。由于觸發器是數據庫自動執行的,因此該名稱只是一個名稱,沒有實質的用途。

              2)觸發時間:指明觸發器何時執行,該值可取:

              before---表示在數據庫動作之前觸發器執行;

              after---表示在數據庫動作之后出發器執行。

              3)觸發事件:指明哪些數據庫動作會觸發此觸發器:

              insert:數據庫插入會觸發此觸發器;

              舉例說明:讓Oracle實現自增字段

              步驟:先建序列,然后建立一個Oracle觸發器實現!

              cata0是表名,cata0_id是需要自增的字段!

              CREATE SEQUENCE SEQ_cata0

              INCREMENT BY 1

              START WITH 1

              MAXVALUE 9999999

              CREATE TRIGGER TRG_cata0 BEFORE

              INSERT ON cata0

              FOR EACH ROW begin

              INTO :NEW.cata0_ID

              from DUAL;

              End TRG_cata0;

              /****@PARAM STNAME 不要創建序列的表,多個表則以“,”隔開**/

              CREATE OR REPLACE PROCEDURE PROC_CREATE_SEQ_TRIG(STNAME IN VARCHAR2)

              AS

              STRSQL VARCHAR2(4000);

              TABLENAME VARCHAR2(50);

              PID VARC ......

            【Oracle觸發器創建及其功能】相關文章:

            Oracle認證:ORACLE綁定變量BINDPEEKING08-25

            Oracle認證:Oracle控制件文件修復07-27

            2016年Oracle DBA創建數據庫練習題及答案08-10

            Oracle認證:Oracle避免全表掃描方式10-04

            Oracle認證:Oracle內存結構研究-PGA篇09-22

            Oracle發展歷程09-12

            Oracle最新認證07-13

            Oracle認證作用07-31

            Oracle認證簡介07-22

            Oracle認證考試07-31

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看