在SQL中,名詞觸發(fā)器指“在數(shù)據(jù)庫(kù)中為響應(yīng)一個(gè)特殊表格中的某些事件而自動(dòng)執(zhí)行的程序代碼。”(Wikipedia)說得簡(jiǎn)單一些,它是在一個(gè)特殊的數(shù)據(jù)庫(kù)事件,如INSERT或DELETE發(fā)生時(shí),自動(dòng)激活的一段代碼。觸發(fā)器可方便地用于日志記錄、對(duì)單個(gè)表格到其他鏈接式表格進(jìn)行自動(dòng)的“層疊式”更改、或保證對(duì)表格關(guān)系進(jìn)行自動(dòng)更新。當(dāng)一個(gè)新整數(shù)值增加到數(shù)據(jù)庫(kù)域中時(shí),自動(dòng)更新運(yùn)行的總數(shù)的代碼段是一個(gè)觸發(fā)器。自動(dòng)記錄對(duì)一個(gè)特殊數(shù)據(jù)庫(kù)表格所作更改的SQL命令塊也是一個(gè)觸發(fā)器實(shí)例。
觸發(fā)器是MySQL 5.x的新功能,隨著5.x代碼樹新版本的出現(xiàn),這一功能也逐漸得到改善。在本文中,我將簡(jiǎn)單介紹如何定義并使用觸發(fā)器,查看觸發(fā)器狀態(tài),并如何在使用完畢后刪除觸發(fā)器。我還將為你展示一個(gè)觸發(fā)器在現(xiàn)實(shí)世界中的應(yīng)用實(shí)例,并檢驗(yàn)它對(duì)數(shù)據(jù)庫(kù)記錄的改變。
一個(gè)簡(jiǎn)單實(shí)例
通過簡(jiǎn)單(雖然是人為的)實(shí)例來說明是了解MySQL觸發(fā)器應(yīng)用的最佳辦法。首先我們建立兩個(gè)單域的表格。一個(gè)表格中為姓名列表(表格名:data),另一個(gè)表格中是所插入字符的字符數(shù)(表格名:chars)。我希望在data表格中定義一個(gè)觸發(fā)器,每次在其中插入一個(gè)新姓名時(shí),chars表格中運(yùn)行的總數(shù)就會(huì)根據(jù)新插入記錄的字符數(shù)目進(jìn)行自動(dòng)更新。(見列表A)
|
新聞熱點(diǎn)
疑難解答
圖片精選