mysql複習(1) 觸發器

2022-06-09 07:18:10 字數 1961 閱讀 4721

顧名思義,觸發就是滿足一定條件下產生什麼動作,完整的定義是觸發器是與表有關的資料庫物件,在滿足定義條件時觸發,並執行觸發器中定義的語句集合。

1

create

trigger trigger_name trigger_time trigger_event on tb_name for each row trigger_stmt

trigger_name:觸發器的名稱

tirgger_time:觸發時機,為before或者after

trigger_event:觸發事件,為insert、delete或者update

tb_name:表示建立觸發器的表明,就是在哪張表上建立觸發器

trigger_stmt:觸發器的程式體,可以是一條sql語句或者是用begin和end包含的多條語句

可以說mysql建立以下六種觸發器: before insert,before delete,before update after insert,after delete,after update

1

//題目:構造乙個觸發器audit_log,在向employees_test表中插入一條資料的時候,觸發插入相關的資料到audit中。23

create

table

employees_test(

4 id int

primary

keynot

null

,5 name text

notnull

, 6 age int

notnull

,7 address char(50

), 8 salary real9);

1011

create

table

audit(

12 emp_no int

notnull

, 13 name text

notnull

14 );

1

create

trigger audit_log after insert

on employees_test for each row begin

2insert

into audit values

(new.id, new.name);

3end

mysql 中定義了 new 和 old,用來表示 觸發器的所在表中,觸發了觸發器的那一行資料。

具體的例子如下:

在 insert 型觸發器中,new 用來表示將要(before)或已經(after)插入的新資料;

在 update 型觸發器中,old 用來表示將要或已經被修改的原資料,new 用來表示將要或已經修改為的新資料;

在 delete 型觸發器中,old 用來表示將要或已經被刪除的原資料;

使用方法: new.columnname (columnname 為相應資料表某一列名)

begin與end之間的執行語句列表引數表示需要執行的多個語句,不同語句用分號隔開

tips:一般情況下,mysql預設是以 ; 作為結束執行語句,與觸發器中需要的分行起衝突

為解決此問題可用delimiter,如:delimiter ||,可以將結束符號變成||

當觸發器建立完成後,可以用delimiter ;來將結束符號變成;

1 delimiter ||

2create

trigger audit_log after insert

on employees_test for each row begin

3insert

into audit values

(new.id, new.name);4//

其他語句

5end

6 delimiter ;

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

my sql 觸發器 mysql建立觸發器

首先,我們來了解一下什麼是觸發器,觸發器,就是在對一張表資料進行增 insert 刪 delete 改 update 的時候,為了保持資料的一致性,對別的表也要進行相應的資料修改。我們都知道mysql最後事務提交後,資料是會儲存到磁碟上的,那麼每次在insert,delete,update時候舊資料...

my sql 觸發器 MySQL檢視觸發器

檢視觸發器是指檢視資料庫中已經存在的觸發器的定義 狀態和語法資訊等。mysql 中檢視觸發器的方法包括 show triggers 語句和查詢 information schema 資料庫下的 triggers 資料表等。本節將詳細介紹這兩種檢視觸發器的方法。show triggers語句檢視觸發器...