在某個表發生更改(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時候舊資料...