MySQL觸發器的建立和使用

2021-10-13 13:11:19 字數 2159 閱讀 7345

① 在學生表student中定義乙個觸發器 tri1,保證新新增的學生的年齡(sage)在16~25歲之間。

drop

trigger

ifexists tri1;

#避免重複出現tri1

delimiter;;

#開始create

trigger tri1 before insert

on student for each row

begin

if(new.sage >25)

or(new.sage >16)

then

signal sqlstate 'hyooo'

set message_text =

'輸入的年齡要在16~25之間'

;endif;

end;

;delimiter

;#結束

#呼叫觸發器

insert

into student values

('200231001'

,'王濤'

,'男',30

,'is'

)

檢視觸發器:

呼叫結果:

② 在成績表sc中定義乙個觸發器tri2,當修改乙個記錄時,確保此記錄的成績(grade)在0~100分之間。

drop

trigger

ifexists tri2;

#避免重複出現tri2

delimiter;;

#開始create

trigger tri2 after

update

on sc for each row

begin

if(new.grade >

100)

or(new.grade <0)

then

signal sqlstate 'hyooo'

set message_text =

'成績應在0~100分之間'

;endif;

end;

;delimiter

;#結束

#呼叫觸發器

update sc

set grade=

120where sno=

'200215122'

檢視觸發器:

呼叫結果:

③ 在學生表student中建立乙個觸發器tri3,當刪除學生表student中學生時,自動刪除成績表sc中相應學生的選課記錄。

drop

trigger

ifexists tri3;

#避免重複出現tri3

delimiter;;

#開始create

trigger tri3 after

delete

on student for each row

begin

delete

from sc where sno = old.sno;

end;

;delimiter

;#結束

#呼叫觸發器

delete

from student where sno =

'200215122'

檢視觸發器:

呼叫結果:

注:刪除之後 student表 和 sc表都沒有 『200215122』

觸發器的建立和使用

create table users id int primary key auto increment,name varchar 32 addrss varchar 32 create table oplog id int primary key auto increment,uid int,插入...

my sql 觸發器 mysql建立觸發器

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

mysql建立觸發器

注 觸發器中不能呼叫儲存過程,觸發器功能應盡量簡單 use d database name 切換到資料庫 set names utf8 drop if exists when update can use drop trigger if exists tr update bind sno delim...