MySQL的觸發器

2021-07-10 20:06:58 字數 2156 閱讀 9264

在某個表發生更改(delete、insert、update)時自動處理某些事情。

-- 刪除觸發器

drop

trigger new_user;

建立觸發器:

1、唯一的名;

2、關聯的表;

3、響應活動(delete、insert、update);

4、何時執行(處理前/後)。

注意:觸發器只支援表,不支援觸發器和臨時表。

注意:

1、可使用new訪問被插入的資料;

2、before insert 觸發器允許更改被插入的值;

3、auto_increament列,new在insert執行前包含0,在insert執行後包含心的自增長值。

-- 建立乙個insert觸發器,插入完成後返回插入的id。

create

trigger new_user

after

insert

on users

foreach

rowselect new.id;

-- 執行插入語句

insert

into users(str_name, str_tel)('xuejianhui', '15657119571');

-- 建立before insert觸發器,插入前修改對應的值。

drop

trigger

ifexists bf_dev_irt_mdf_db;

create

trigger bf_dev_irt_mdf_db before

insert

on device

foreach

rowbegin

if new.nproducttype = 30001

then

set new.strpassword = md5(new.strpassword);

endif;

end;

-- 執行插入測試

insert

into device (strpassword, nproducttype) values ('12345', 30001);

注意:可使用old訪問唯讀的被刪除的行。

-- 建立乙個delete觸發器,將實時日誌中被刪除的資料插入到歷史日誌表。

create trigger delete_real_logs

before delete on real_logs

for each row

begin

insert into history_logs(...) values(...);

end;

注意:

1、new和old都可用;

2、before update中,允許更改new中的值;

3、old中的值為唯讀。

-- 建立乙個update觸發器,更新使用者表時轉換名稱的大小寫。

create

trigger update_user_name

before

update

on users

foreach

rowset new.str_name = upper(new.str_name);

注意:

1、建立觸發器可能需要特殊的安全訪問許可權;

2、觸發器可用來檢查資料的一致性;

3、可用來記錄操作流水;

4、mysql觸發器不支援呼叫儲存過程。

觸發器 mysql觸發器

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

mysql觸發器的要素 MySQL觸發器

觸發器是一類特殊的事務,可以監視某種資料操作 insert,update,delete 並觸發相關操作 insert,update,delete 觸發器建立之四要素 監視地點 table 監視事件 insert,update,delete 觸發時間 after,before 觸發事件 insert,...

my sql 觸發器 mysql建立觸發器

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