oracle 觸發器學習

來源:互聯網
上載者:User

標籤:刪除   區別   分享圖片   完整性條件約束   改變   層級   一個   不能   商務規則   

觸發器(trigger)是SQL server 提供給程式員和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的預存程序,它的執行不是由程式調用,也不是手工啟動,而是由事件來觸發,比如當對一個表進行操作( insert,delete, update)時就會啟用它執行。觸發器經常用於加強資料的完整性條件約束和商務規則等。 觸發器可以從 DBA_TRIGGERS ,USER_TRIGGERS 資料字典中查到。SQL3的觸發器是一個能由系統自動執行對資料庫修改的語句。觸發器可以查詢其他表,而且可以包含複雜的SQL語句。它們主要用於強制服從複雜的商務規則或要求。例如:您可以根據客戶當前的帳戶狀態,控制是否允許插入新訂單。觸發器也可用於強制參考完整性,以便在多個表中添加、更新或刪除行時,保留在這些表之間所定義的關係。然而,強制參考完整性的最好方法是在相關表中定義主鍵和外鍵約束。如果使用資料庫圖表,則可以在表之間建立關係以自動建立外鍵約束。觸發器與預存程序的唯一區別是觸發器不能執行EXECUTE語句調用,而是在使用者執行Transact-SQL語句時自動觸發執行。

/**********************************以上是拷來的*******************************/

首先建立兩張測試表 ceshi1_table  ceshi2_table

我的目的是要改變 ceshi1_table中的 phone 時 ceshi2_table的phone也會改變

PS:電話號碼我就不暴露了

 

然後我要建立我的觸發器

如此這般 結果報了個錯

查閱資料發現,表層級的觸發器不可以使用:new 和 :old,而:new 和 :old 只能用在行觸發中,所以你要在begin前中添加for each row

這樣就成功了

改變ceshi1_table ceshi2_table 也改變了!!!

oracle 觸發器學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.