MySQL基礎5(觸發器)

2021-08-21 05:29:52 字數 2389 閱讀 8877

create trigger trigger_name trigger_time trigger_event

on table_name

for each row

begin

...end;

我們來更詳細的檢查上面的語法。

[trigger time]_[table name]_[trigger event],例如before_employees_update。
1.首先建立名為 fruit 的資料庫,然後在 fruit 的資料庫中建立fruit_price表和fruitchange_log表。

2.1建立fruit_price表

use fruit;

create

table fruit_price (

fruit_id int (10) ,

fruit_name varchar(50) not

null,

fruit_price decimalnot null

);

2.2 插入資料:

3.建立fruitchange_log表:

use food;

create

table fruitchange_log (

fruit_name varchar(50) not

null,

action

varchar(50) not

null,

change_date datetime not

null

);

4.建立觸發器,當更改fruit_price表時,先備份要修改的fruit_price的資訊到fruitchange_log表中。

delimiter $$

create

trigger before_fruit_price_update

before

update

on fruit_price

foreach

rowbegin

insert

into fruitchange_log

setaction = 'update',

fruit_name = old.fruit_name ,

fruit_price = old.fruit_price,

changedate = now();

end$$

delimiter ;

說明:

1.在觸發器的主體中,使用old關鍵字來訪問受觸發器影響的行的fruit_name和fruit_price列。

2.在為insert定義的觸發器中,僅能使用new關鍵字。不能使用old關鍵字。但是,在為delete定義的觸發器中,沒有新行,因此只能使用old關鍵字。在update觸發器中,old是指更新前的行,而new是更新後的行。

5. 檢視觸發器。語句如下:

6. 修改fruit_price表的 資料,檢視修改是否生效。

7. 檢視fruitchange_log表的 資料,來驗證觸發器是否生效。

看圖可知,fruitchange_log表中多了一行資料,正是修改之前的fruit_ptice表的資料,這說明建立的觸發器有效!

待更新……

待更新……

mysql觸發器覆蓋標準sql中定義的所有功能。 但是,在應用程式中使用它們之前也有一些限制。

mysql 觸發器基礎

mysql的觸發器 一般用在需要有資料統計的時候,如果每次請求都要對一張表的資料進行統計,可以考慮觸發器,如 乙個公司的 雇員資訊表中,有使用者名稱 和 使用者的工資字段,現在需要在前端頁面上展示,總的雇員數,和總的工資數,如果每請求一次都要去使用 mysql的聚合函式 sum 和 count 其實...

MySQL基礎 觸發器

觸發器 trigger 監視某種情況,並觸發某種操作,它的執行是由事件來觸發的,例如當對乙個表進行操作 insert,delete,update 時就會啟用它執行。觸發器經常用於加強資料的完整性約束和業務規則等。觸發器建立語法四要素 1.監視地點 table 2.監視事件 insert update...

mysql 基礎 觸發器

簡單的說,就是一張表發生了某件事 插入 刪除 更新操作 然後自動觸發了預先編寫好的若干條sql語句的執行 特點 觸發事件的操作和觸發器裡的sql語句是乙個事務操作,具有原子性,要麼全部執行,要麼都不執行 作用 保證資料的完整性,起到約束的作用 觸發器是隱藏到mysql後台執行的功能。由於觸發器是隱藏...