導航:首頁 > 數據處理 > 觸發器在資料庫的作用是什麼

觸發器在資料庫的作用是什麼

發布時間:2022-04-24 03:03:03

『壹』 觸發器什麼時候使用有什麼功能

1.如果我更改了學生的學號,我希望他的借書記錄仍然與這個學生相關(也就是同時更改借書記錄表的學號);

2.如果該學生已經畢業,我希望刪除他的學號的同時,也刪除它的借書記錄。這時候可以用到觸發器。

『貳』 請問:資料庫中的觸發器是用來做什麼的

觸發器是一種特殊類型的存儲過程,當使用下面的一種或多種數據修改操作在指定表中對數據進行修改時,觸發器會生效:UPDATE、INSERT 或 DELETE。觸發器可以查詢其它表,而且可以包含復雜的 SQL 語句。它們主要用於強制復雜的業務規則或要求。例如,可以控制是否允許基於顧客的當前帳戶狀態插入定單。

觸發器還有助於強制引用完整性,以便在添加、更新或刪除表中的行時保留表之間已定義的關系。然而,強制引用完整性的最好方法是在相關表中定義主鍵和外鍵約束。如果使用資料庫關系圖,則可以在表之間創建關系以自動創建外鍵約束。有關詳細信息,請參見表關系。

使用觸發器的優點
觸發器的優點如下:

觸發器是自動的:它們在對表的數據作了任何修改(比如手工輸入或者應用程序採取的操作)之後立即被激活。

觸發器可以通過資料庫中的相關表進行層疊更改。例如,可以在 titles 表的 title_id 列上寫入一個刪除觸發器,以使其它表中的各匹配行採取刪除操作。該觸發器用 title_id 列作為唯一鍵,在 titleauthor、sales 及 roysched 表中對各匹配行進行定位。

觸發器可以強制限制,這些限制比用 CHECK 約束所定義的更復雜。與 CHECK 約束不同的是,觸發器可以引用其它表中的列。例如,觸發器可以回滾試圖對價格低於 10 美元的書(存儲在 titles 表中)應用折扣

『叄』 觸發器的作用是什麼

觸發器是一種特殊類型的存儲過程,當使用下面的一種或多種數據修改操作在指定表中對數據進行修改時,觸發器會生效:UPDATE、INSERT或DELETE。觸發器可以查詢其它表,而且可以包含復雜的SQL語句。它們主要用於強制復雜的業務規則或要求。例如,可以控制是否允許基於顧客的當前帳戶狀態插入定單。

觸發器還有助於強制引用完整性,以便在添加、更新或刪除表中的行時保留表之間已定義的關系。然而,強制引用完整性的最好方法是在相關表中定義主鍵和外鍵約束。如果使用資料庫關系圖,則可以在表之間創建關系以自動創建外鍵約束。

觸發器的優點如下:

1、觸發器是自動的:它們在對表的數據作了任何修改(比如手工輸入或者應用程序採取的操作)之後立即被激活;

2、觸發器可以通過資料庫中的相關表進行層疊更改。例如,可以在titles表的title_id列上寫入一個刪除觸發器,以使其它表中的各匹配行採取刪除操作。該觸發器用title_id列作為唯一鍵,在titleauthor、sales及roysched表中對各匹配行進行定位;

3、觸發器可以強制限制,這些限制比用CHECK約束所定義的更復雜。與CHECK約束不同的是,觸發器可以引用其它表中的列。例如,觸發器可以回滾試圖對價格低於10美元的書(存儲在titles表中)應用折扣(存儲在discounts表中)的更新。

觸發器的分類:

1、DML( 數據操縱語言 Data Manipulation Language)觸發器:是指觸發器在資料庫中發生DML事件時將啟用。DML事件即指在表或視圖中修改數據的insert、update、delete語句;

2、DDL(數據定義語言 Data Definition Language)觸發器:是指當伺服器或資料庫中發生(DDL事件時將啟用。DDL事件即指在表或索引中的create、alter、drop語句也;

3、登陸觸發器:是指當用戶登錄SQL SERVER實例建立會話時觸發。

觸發器的SQL Server實例:要求就是在AddTable這個表上創建一個Update觸發器,語句為:

『肆』 資料庫 觸發器有什麼用

觸發器
觸發器的定義就是說某個條件成立的時候,你觸發器裡面所定義的語句就會被自動的執行。因此觸發器不需要人為的去調用,也不能調用。

然後,觸發器的觸發條件其實在你定義的時候就已經設定好的了。這裡面需要說明一下,觸發器可以分為語句級觸發器和行級觸發器。詳細的介紹可以參考網上的資料,簡單的說就是語句級的觸發器可以在某些語句執行前或執行後被觸發。而行級觸發器則是在定義的了觸發的表中的行數據改變時就會被觸發一次。
具體舉例:
1. 在一個表中定義的語句級的觸發器,當這個表被刪除時,程序就會自動執行觸發器裡面定義的操作過程。這個就是刪除表的操作就是觸發器執行的條件了。
2. 在一個表中定義了行級的觸發器,那當這個表中一行數據發生變化的時候,比如刪除了一行記錄,那觸發器也會被自動執行了。
觸發器簡介:
觸發器是一種特殊類型的過程。與普通過程不同的是,過程需要用戶顯式地調用才執行,而觸發器則是當某些事件發生時,由Oracle自動執行。
觸發器主要由如下幾個部分組成:
觸發事件:
觸發條件:
觸發對象:
觸發操作:
編寫觸發器時,需要注意以下幾點:
觸發器不接受參數。
一個表上最多可以有12個觸發器,但同一時間、同一事件、同一類型的觸發器只能有一個。還需要注意,各個觸發器之間不能有矛盾。
在一個表上的觸發器越多,對在該表上的DML操作性能影響就越大。
觸發器最大為32KB。如果確實需要,可以先建立過程,然後在觸發器中用CALL語句調用。
在DML觸發器中只能使用DML語句(select,insert,update,delete)。
在系統觸發器中只能包含DDL語句(create,alter,drop)。
觸發器中不能包含事務控制語句(commit,rollback,savepoint)。因為觸發器是觸發語句的一部門,觸發語句被提交或回退時,觸發器也就被提交或回退了。
在觸發器主體中調用的任何過程、函數都不能使用事務控制語句。
在觸發器主體中不能聲明任何long和blob變數。新值new、舊值old也不能指向表中的任何long和blog列
不同類型的觸發器(如DML觸發器、INSTEAD OF觸發器、系統觸發器)的語法格式和作用都有較大區別。
</B>

『伍』 資料庫的「觸發器」是做什麼的

存儲過程相當於寫了一個自定義的函數,讓這個函數做一些動作。
觸發器有點像高級語言的Button_Clicked一樣,在數據改變的時候做動作。
觸發器是在數據變化的時候,自動執行的。
存儲過程是手動執行的。

『陸』 資料庫中觸發器重要的功能是什麼

數據審計是觸發器的重要功能,其作用是跟蹤數據的變化過程,審核操作的合法性與合理性,如果觸發不合法的操作,可依據審計的記錄把數據恢復到原來的狀態。

數據審計業務一般由兩個數據表構成,一個是業務表,普通用戶可以擁有此表讀寫許可權;

一個是審計表,普通用戶不擁有此表讀寫許可權,只有超級用戶才擁有此表讀寫許可權,用於記錄數據的變化過程。下面以一個案例的方式來說明數據審計的過程和作用。

有一個存儲車輛收費信息表t_car,表結構如圖車輛收費信息表結構所示,因業務要求,程序要有對該表的數據修改許可權,為此需要審計對該表上數據的記錄值修改信息,以備查詢、跟蹤。

車輛收費信息表結構

有一個審計表t_record,表結構如圖審計表結構所示,要記錄對車輛收費信息表的修改行為的所有信息,以供事後進行審計,判斷操作行為是否合法。

審計表存儲的內容有修改前pay欄位的值、修改後pay欄位的值、記錄被修改的時間、登錄資料庫伺服器修改數據的ip地址、登錄資料庫伺服器的賬號信息。

審計表結構

((1)用audit.sql腳本初始化數據表環境,然後使用觸發器記錄所有用戶對表t_car進行UPDATE操作修改數據的行為。觸發器代碼如下:DELIMITER//DROPTRIGGERIFEXISTStri_t_car;CREATETRIGGERtri_t_carBEFOREUPDATEONt_carFOREACHROWBEGINIFNEW.pay<>OLD.payTHENINSERTINTOt_record(username

『柒』 資料庫觸發器有什麼作用

觸發器的作用:

自動計算數據值,如果數據的值達到了一定的要求,則進行特定的處理。

同步實時地復製表中的數據。

實現復雜的非標準的資料庫相關完整性規則。

可在寫入數據表前,強制檢驗或轉換數據。

觸發器發生錯誤時,異動的結果會被撤銷。

部分資料庫管理系統可以針對數據定義語言(DDL)使用觸發器,稱為DDL觸發器。

可依照特定的情況,替換異動的指令 (INSTEAD OF)。


(7)觸發器在資料庫的作用是什麼擴展閱讀:

分類

SQL Server 包括三種常規類型的觸發器:DML 觸發器、DDL 觸發器和登錄觸發器。

DML觸發器

當資料庫中表中的數據發生變化時,包括insert,update,delete任意操作,如果我們對該表寫了對應的DML觸發器,那麼該觸發器自動執行。

DML觸發器的主要作用在於強制執行業 務規則,以及擴展Sql Server約束,默認值等。因為我們知道約束只能約束同一個表中的數據,而觸發器中則可以執行任意Sql命令。

DDL觸發器

它是Sql Server2005新增的觸發器,主要用於審核與規范對資料庫中表,觸發器,視圖等結構上的操作。比如在修改表,修改列,新增表,新增列等。

它在資料庫結構發生變化時執行,我們主要用它來記錄資料庫的修改過程,以及限制程序員對資料庫的修改,比如不允許刪除某些指定表等。

登錄觸發器

登錄觸發器將為響應 LOGIN 事件而激發存儲過程。與 SQL Server 實例建立用戶會話時將引發此事件。登錄觸發器將在登錄的身份驗證階段完成之後且用戶會話實際建立之前激發。

因此,來自觸發器內部且通常將到達用戶的所有消息(例如錯誤消息和來自 PRINT 語句的消息)會傳送到 SQL Server 錯誤日誌。如果身份驗證失敗,將不激發登錄觸發器。

參考資料來源:網路-觸發器

『捌』 mysql觸發器的作用

資料庫觸發器有下面的作用:
1.安全性。能夠基於資料庫的值使用戶具有操作資料庫的某種權利。
  # 能夠基於時間限制用戶的操作,比如不同意下班後和節假日改動資料庫數據。
2.審計。能夠跟蹤用戶對資料庫的操作。   
  # 審計用戶操作資料庫的語句。
  # 把用戶對資料庫的更新寫入審計表。
3.實現復雜的數據完整性規則
  # 實現非標準的數據完整性檢查和約束。觸發器可產生比規則更為復雜的限制。與規則不同,觸發器能夠引用列或資料庫對象。比如,觸發器可回退不論什麼企圖吃進超過自己保證金的期貨。
  # 提供可變的預設值。
4.實現復雜的非標準的資料庫相關完整性規則。觸發器能夠對資料庫中相關的表進行連環更新。比如,在auths表author_code列上的刪除觸發器可導致對應刪除在其他表中的與之匹配的行。
  # 在改動或刪除時級聯改動或刪除其他表中的與之匹配的行。
  # 在改動或刪除時把其他表中的與之匹配的行設成NULL值。
  # 在改動或刪除時把其他表中的與之匹配的行級聯設成預設值。
  # 觸發器可以拒絕或回退那些破壞相關完整性的變化,取消試圖進行數據更新的事務。當插入一個與其主健不匹配的外部鍵時,這樣的觸發器會起作用。比如,可以在books.author_code 列上生成一個插入觸發器,假設新值與auths.author_code列中的某值不匹配時,插入被回退。
5.同步實時地復製表中的數據。
6.自己主動計算數據值,假設數據的值達到了一定的要求,則進行特定的處理

『玖』 觸發器在資料庫設計和編程中起到什麼重要作用

我的講解:
簡單來講哪就是事件觸發。
比如你對資料庫中的表進行了一個插刪等操作,你想在你即將做或者完成這個操作的時候程序能自動做一點別的工作,比如你想對插入數據檢查一下或者對刪除後的數據總數進行一下統計。

本來哪,你可以把這個工作寫在自己的程序里,就是把檢查寫在你插入動作之前或者把統計數目寫在刪除動作之後。這樣的問題是:你要做插刪的時候就都要寫這些代碼,而且很容易就遺漏了。

而觸發器哪,你定義在某個操作上,比如把那個檢查的工作過程定義成插入的前觸發器,把統計工作定義成後觸發器,那麼在你進行插入刪除的時候,資料庫那邊的程序就自動的給你做了這個工作了。

主要作用哪:我感覺
一是完整性(防止自己編程的遺漏),
二是簡單,
三是由資料庫程序(比如Oracle)進行這項工作,而不是由你自己的程序做,效率高。

下面是人家的一些教程,其實道理是很簡單的。你可以用它後面講的幾個資料庫的例子,自己寫一個,試試就知道了。

————————————————————————————————————————

一 觸發器介紹

觸發器是一種特殊的存儲過程,它在插入,刪除或修改特定表中

的數據時觸發執行,它比資料庫本身標準的功能有更精細和更復雜的

數據控制能力。資料庫觸發器有以下的作用:

* 安全性。可以基於資料庫的值使用戶具有操作資料庫的某種權

利。

# 可以基於時間限制用戶的操作,例如不允許下班後和節假日

修改資料庫數據。

# 可以基於資料庫中的數據限制用戶的操作,例如不允許股票

的價格的升幅一次超過10%。

* 審計。可以跟蹤用戶對資料庫的操作。

# 審計用戶操作資料庫的語句。

# 把用戶對資料庫的更新寫入審計表。

* 實現復雜的數據完整性規則。

# 實現非標準的數據完整性檢查和約束。觸發器可產生比規則

更為復雜的限制。與規則不同,觸發器可以引用列或資料庫對

象。例如,觸發器可回退任何企圖吃進超過自己保證金的期貨。

# 提供可變的預設值。

* 實現復雜的非標準的資料庫相關完整性規則。觸發器可以對數

據庫中相關的表進行連環更新。例如,在auths表author_code列上的

刪除觸發器可導致相應刪除在其它表中的與之匹配的行。

# 在修改或刪除時級聯修改或刪除其它表中的與之匹配的行。

# 在修改或刪除時把其它表中的與之匹配的行設成NULL值。

# 在修改或刪除時把其它表中的與之匹配的行級聯設成預設值。

# 觸發器能夠拒絕或回退那些破壞相關完整性的變化,取消試

圖進行數據更新的事務。當插入一個與其主健不匹配的外部鍵

時,這種觸發器會起作用。例如,可以在books.author_code

列上生成一個插入觸發器,如果新值與auths.author_code列

中的某值不匹配時,插入被回退。

* 同步實時地復製表中的數據。

* 自動計算數據值,如果數據的值達到了一定的要求,則進行特

定的處理。例如,如果公司的帳號上的資金低於5萬元則立即給財務人

員發送警告數據。

ORACLE與SYBASE資料庫的觸發器有一定的區別,下面將分別講述

這兩種資料庫觸發器的作用和寫法。

二 ORACLE 觸發器

ORACLE產生資料庫觸發器的語法為:

create [or replace] trigger 觸發器名 觸發時間 觸發事件

on 表名

[for each row]

pl/sql 語句

其中:

觸發器名:觸發器對象的名稱。由於觸發器是資料庫自動執行

的,因此該名稱只是一個名稱,沒有實質的用途。

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

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

after---表示在資料庫動作之後出發器執行。

觸發事件:指明哪些資料庫動作會觸發此觸發器:

insert:資料庫插入會觸發此觸發器;

update:資料庫修改會觸發此觸發器;

delete:資料庫刪除會觸發此觸發器。

表 名:資料庫觸發器所在的表。

for each row:對表的每一行觸發器執行一次。如果沒有這一

選項,則只對整個表執行一次。

舉例:下面的觸發器在更新表auths之前觸發,目的是不允許在

周末修改表:

create trigger auth_secure

before insert or update or delete //對整表更新前觸發

on auths

begin

if(to_char(sysdate,'DY')='SUN'

RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');

end if;

end

三 SYBASE資料庫觸發器

SYBASE資料庫觸發器的作用與ORACLE非常類似,僅有較小的差異。

SYBASE產生觸發器的語法為:

CREATE TRIGGER 觸發器名

ON 表名

FOR INSERT,UPDATE,DELETE

AS

SQL_statement |

FOR INSERT,UPDATE

AS

IF UPDATE(column_name) [AND|OR UPDATE(column_name)]...

SQL_statements

上面FOR子句用來指定在觸發器上的哪些數據更新命令可激活該

觸發器。IF UPDATE子句檢查對指定列的操作類型,在IF UPDATE子句

中可指定多個列。

與ORACLE不同,對於每條SQL語句,觸發器只執行一次。觸發器

在數據更新語句完成以後立即執行。觸發器和啟動它的語句被當作一

個事務處理,事務可以在觸發器中回退。

下面舉例說明SYBASE觸發器的寫法。

create trigger forinsert_books

on books

for insert

as

if(select count(*) from auths,inserted

where auths.author_code=insert.author_code)!=@@rowcount

begin

rollback transaction

print "books 表中 author_code 列的值在auths 表中不存在。"

end

『拾』 資料庫中的「觸發器」是什麼意思

在SQL中,名詞觸發器指「在資料庫中為響應一個特殊表格中的某些事件而自動執行的程序代碼。」(Wikipedia)說得簡單一些,它是在一個特殊的資料庫事件,如INSERT或DELETE發生時,自動激活的一段代碼。觸發器可方便地用於日誌記錄、對單個表格到其他鏈接式表格進行自動的「層疊式」更改、或保證對表格關系進行自動更新。當一個新整數值增加到資料庫域中時,自動更新運行的總數的代碼段是一個觸發器。自動記錄對一個特殊資料庫表格所作更改的SQL命令塊也是一個觸發器實例。
參考:
http://www.nmzol.com/ns/2007/200705/2007-05-05/ns_20070505214010_16672.html

閱讀全文

與觸發器在資料庫的作用是什麼相關的資料

熱點內容
華為配件產品有哪些 瀏覽:879
北京證券交易所跌幅是多少 瀏覽:578
資料庫是哪個主機 瀏覽:574
為什麼大型並購交易不如小型的 瀏覽:985
二十七八歲了學什麼技術好 瀏覽:661
什麼時期的文物不能在市場交易 瀏覽:155
詩黛爾微商怎麼代理 瀏覽:736
定了車票怎麼沒來信息 瀏覽:132
肇慶市職業學校學什麼技術吃香 瀏覽:424
數據模型在電腦哪裡 瀏覽:171
農商交易密碼鎖定怎麼解除 瀏覽:772
上海航運交易所總共多少錢 瀏覽:172
國際庄菜市場在哪裡 瀏覽:568
離婚訴訟案委託別人代理怎麼寫 瀏覽:920
波段交易怎麼規避中線風險 瀏覽:254
交易單元和機構哪個好 瀏覽:32
什麼產品能讓全身變白 瀏覽:726
菜園壩怎麼去花卉市場 瀏覽:621
怎麼用微信公眾號推廣產品 瀏覽:658
男人學一門技術有什麼前途 瀏覽:752