zhyiwww
          用平實(shí)的筆,記錄編程路上的點(diǎn)點(diǎn)滴滴………
          posts - 536,comments - 394,trackbacks - 0

          CREATE TRIGGER

          Name

          CREATE TRIGGER — 創(chuàng)建一個(gè)新觸發(fā)器
          CREATE TRIGGER name { BEFORE | AFTER } { event [OR ...] }
              ON table FOR EACH { ROW | STATEMENT }
              EXECUTE PROCEDURE func ( arguments )
            

          輸入

          name

          觸發(fā)器名稱.

          table

          表名稱.

          event

          INSERT,DELETE 或 UPDATE 之一.

          func

          一個(gè)用戶提供的函數(shù).

          輸出

          CREATE

          如果觸發(fā)器成功創(chuàng)建,返回此信息.

          描述

          CREATE TRIGGER 將向現(xiàn)有數(shù)據(jù)庫(kù)中增加一個(gè)新的觸發(fā)器. 觸發(fā)器將與表 table 相聯(lián)并且將執(zhí)行聲明的函數(shù) func

          觸發(fā)器可以聲明為在對(duì)記錄進(jìn)行操作之前 在檢查約束之前和 INSERTUPDATEDELETE 執(zhí)行前)或之后(在檢 查約束之后和完成 INSERTUPDATEDELETE 操作)觸發(fā). 如果觸發(fā)器在事件之前,觸發(fā)器可能略過當(dāng)前記錄 的操作或改變被插入的(當(dāng)前)記錄(只對(duì) INSERTUPDATE 操作有效). 如果觸發(fā)器在事件之后,所有更改,包括最后的插入, 更新或刪除對(duì)觸發(fā)器都是"可見"的.

          請(qǐng)參考 PostgreSQL 程序員手冊(cè)中SPI 和觸發(fā)器章節(jié)獲取更多信息.

          注意

          CREATE TRIGGERPostgres 語言擴(kuò)展.

          只有表所有者可以就此表創(chuàng)建一個(gè)觸發(fā)器.

          在當(dāng)前的版本(v7.0),STATEMENT 觸發(fā)器還沒有實(shí)現(xiàn).

          請(qǐng)參考 DROP TRIGGER 獲取如何刪除觸發(fā)器的信息.

          用法

          在插入或更新表 films 之前檢查一下聲明的分銷商代碼是否存在于 distributors 表中:

          CREATE TRIGGER if_dist_exists
              BEFORE INSERT OR UPDATE ON films FOR EACH ROW
              EXECUTE PROCEDURE check_primary_key ('did', 'distributors', 'did');
             

          在刪除或更新一個(gè)分銷商的內(nèi)容之前, 將所有記錄移到表 films 中:

          CREATE TRIGGER if_film_exists 
              BEFORE DELETE OR UPDATE ON distributors FOR EACH ROW
              EXECUTE PROCEDURE check_foreign_key (1, 'CASCADE', 'did', 'films', 'did');
             

          兼容性

          SQL92

          SQL92 里沒有 CREATE TRIGGER語句.

          上面第二個(gè)例子可以使用一個(gè) FOREIGN KEY 約束實(shí)現(xiàn):

          CREATE TABLE distributors (
              did      DECIMAL(3),
              name     VARCHAR(40),
              CONSTRAINT if_film_exists
              FOREIGN KEY(did) REFERENCES films
              ON UPDATE CASCADE ON DELETE CASCADE  
          );
              



          |----------------------------------------------------------------------------------------|
                                     版權(quán)聲明  版權(quán)所有 @zhyiwww
                      引用請(qǐng)注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2006-06-02 18:41 zhyiwww 閱讀(419) 評(píng)論(0)  編輯  收藏 所屬分類: database
          主站蜘蛛池模板: 汕尾市| 五莲县| 黄陵县| 高阳县| 井陉县| 安图县| 抚顺市| 潼关县| 上虞市| 应城市| 军事| 东光县| 虹口区| 双城市| 宁海县| 浦江县| 辽中县| 望奎县| 沈阳市| 云林县| 抚松县| 和静县| 泽库县| 齐河县| 台南县| 湘潭市| 时尚| 康马县| 宿松县| 大荔县| 栖霞市| 乌兰县| 东辽县| 汉川市| 定日县| 孙吴县| 寿宁县| 临朐县| 恩施市| 阳信县| 元谋县|