Rex

          ——生命不止,奮斗不息。
          posts - 27, comments - 8, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          mysql 觸發器

          Posted on 2017-11-24 14:33 W.R 閱讀(248) 評論(0)  編輯  收藏 所屬分類: mySql
          一、觸發器概念 觸發器(trigger):監視某種情況,并觸發某種操作,它是提供給程序員和數據分析員來保證數據完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執行不是由程序調用,也不是手工啟動,而是由事件來觸發,例如當對一個表進行操作( insert,delete, update)時就會激活它執行。 觸發器經常用于加強數據的完整性約束和業務規則等。 觸發器創建語法四要素: 1.監視地點(table) 2.監視事件(insert/update/delete) 3.觸發時間(after/before) 4.觸發事件(insert/update/delete) 觸發器基本語法如下所示: DROP TRIGGER if EXISTS 觸發器名; CREATE TRIGGER 觸發器名 BEFORE INSERT ON 表名 FOR EACH ROW BEGIN sql語句 END 其中: trigger_time是觸發器的觸發事件,可以為before(在檢查約束前觸發)或after(在檢查約束后觸發); trigger_event是觸發器的觸發事件,包括insert、update和delete,需注意對同一個表相同觸發時間的相同觸發事件,只能定義一個觸發器; 可以使用old和new來引用觸發器中發生變化的記錄內容。 觸發器SQL語法: DROP TRIGGER if EXISTS triggle_insert_enroll_students; CREATE TRIGGER triggle_insert_enroll_students AFTER INSERT ON t_course_enroll_students FOR EACH ROW BEGIN -- update t_course_enroll_students set pid=(select id from t_course_enroll where t_course_enroll.course_name=t_course_enroll_students.course_name) where id=t_course_enroll_students.id; set new.pid=(select id from t_course_enroll where t_course_enroll.course_name=new.course_name); END

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 峨山| 阿克| 五华县| 上犹县| 新余市| 灌云县| 六盘水市| 阜康市| 布拖县| 铁岭县| 冷水江市| 额敏县| 甘孜| 耿马| 晋州市| 宕昌县| 大化| 精河县| 兴山县| 沅江市| 扎鲁特旗| 崇礼县| 英山县| 莲花县| 定兴县| 茂名市| 汾西县| 汨罗市| 怀仁县| 鲁山县| 兴仁县| 灯塔市| 呈贡县| 芷江| 铜山县| 龙海市| 庆元县| 永州市| 长岛县| 华安县| 浦东新区|