觸發器和儲存過程,函式的寫法很像,但是不同的是觸發器並不需要手動呼叫,而是在設定條件後由系統自動呼叫,下面我們做乙個關於users表的增刪改觸發器。
1.先建立乙個users表和儲存觸發器工作日誌的rizhi表
2.然後分別建立三個觸發器:增刪改
delimiter $$
drop trigger t1 $$
create trigger `pubs`.`t1` before insert
on `pubs`.`users`
for each row begin
-- set new.userpwd='***';
insert into rizhi(shijian,zuozhe,doi,leixing)
values (now(),user(),concat('錄入了姓名:',new.username,'錄入了密碼:',new.userpwd),'增加');
end$$
delimiter ;
特別注意的是將第三行為before的前提下,可以設定只要往users表增添資料,無論手動輸入的是什麼,最後增添成功的都是乙個定值。
delimiter $$
drop trigger t3 $$
create trigger `pubs`.`t3` before delete
on `pubs`.`users`
for each row begin
insert into rizhi (shijian,zuozhe,doi,leixing)
values(now(),user(),concat('刪除了姓名:',old.username,'刪除了密碼:',old.userpwd),'刪除');
end$$
delimiter ;
delimiter $$
drop trigger t2 $$
create trigger `pubs`.`t2` before update
on `pubs`.`users`
for each row begin
insert into rizhi(shijian,zuozhe,doi,leixing)
values (now(),user(),concat('更新了姓名:',new.username,'更新了密碼:',new.userpwd,'從舊名字',old.username,'舊密碼',old.userpwd),'更新');
end$$
delimiter ;
3.下面測試結果展示
然後執行
delete from users
結果展示:
觸發器 mysql觸發器
觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...
Mysql學習 觸發器
觸發器是一類特殊的事務,可以監視某種資料操作 insert delete update 並觸發相應操作 insert delete update 使用場景 1 當向一張表中新增或刪除記錄時,需要在相關表中進行同步操作 2 當表上某列資料的值與其他表中的資料有聯絡時。3 當需要對某張表進行跟蹤時 二 ...
mysql 觸發器學習
mysql 觸發器學習 1.乙個簡單的例子 1.1.建立表 create table t s1 integer 1.2.觸發器 delimiter create trigger t trigger before insert on t for each row begin set x hello t...