首頁  >  文章  >  資料庫  >  資料庫中預存程序和觸發器有什麼區別

資料庫中預存程序和觸發器有什麼區別

清浅
清浅原創
2019-04-26 17:36:2425612瀏覽

預存程序與觸發器的差異有:1、預存程序可以採用輸入參數,而觸發器不可以;2、預存程序可以回傳零或n值,而觸發器無法回傳值;3、儲存過程中可以使用事務,而觸發器不允許。

資料庫中預存程序和觸發器有什麼區別

【推薦課程:#MySQL教學##】

預存程序和觸發器都是資料庫中非常重要的知識,接下來將在文章中透過許多方面來比較這兩者之間的不同,具有一定的參考作用希望對大家有所幫助。


什麼是觸發器?

觸發器是資料庫中的表格/視圖發生某些特定事件時自動執行的過程(程式碼片段)。觸發器主要用於維護資料庫中的完整性。觸發器也用於實施業務規則,審核資料庫中的變更以及複製資料。最常見的觸發器是在操作資料時觸發資料操作語言(DML)觸發器。某些資料庫系統支援非資料觸發器,這些觸發器會在發生資料定義語言(DDL)事件時觸發。這些觸發器可以特別用於審計。 Oracle資料庫系統支援模式級觸發器

什麼是預存程序?

預存程序是可以由存取關聯式資料庫的應用程式。通常,預存程序用作驗證資料和控制對資料庫的存取。如果某些資料處理作業需要執行多個SQL語句,則此類操作將作為預存程序實作。呼叫預存程序時,必須使用CALL或EXECUTE語句。預存程序可以傳回結果(例如SELECT語句的結果)。這些結果可以由其他預存程序或應用程式使用。用於編寫預存程序的語言通常支援控制結構,例如if,while,for等。根據所使用的資料庫系統,可以使用多種語言來實現預存程序

預存程序和觸發器的差異

(1)預存程序是一組已建立並儲存在資料庫中的SQL語句。所以我們可以一遍又一遍地重複使用程式碼。而觸發器是一種特殊的不是由使用者直接呼叫預存程序,建立觸發器時,會定義在針對特定表或列進行特定類型的資料修改時觸發。

(2)使用者可以使用Execute或Exec語句來直接呼叫或執行預存程序,而無法直接呼叫或執行觸發器。觸發相關事件時,只會自動執行觸發器。

(3)預存程序可以採用輸入參數,而觸發器中不能將參數作為輸入我們不能將參數作為輸入傳遞給觸發器。

(4)預存程序可以傳回零或n值,觸發器無法傳回值。

(5)我們可以在預存程序中使用事務,觸發器內不允許進行事務處理

(6)預存程序通常用於執行使用者指定的任務,觸發器通常用於審計工作

以上是資料庫中預存程序和觸發器有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn