MySQL 觸發器結構及三個案例demo

2022-09-16 20:15:11 字數 2118 閱讀 8147

--你必須擁有相當大的許可權才能建立觸發器(create trigger),如果你已經是root使用者,那麼就足夠了。這跟sql的標準有所不同。

create trigger trigger_name

trigger_time

trigger_event

on tbl_name

for each row 

trigger_stmt

觸發程式與命名為tbl_name

的表相關。

trigger_time

是觸發程式的動作時間。它可以是before或after,以指明觸發程式是在啟用它的語句之前或之後觸發。

trigger_event

指明了啟用觸發程式的語句的型別。trigger_event可以是下述值之一:

·         insert:將新行插入表時啟用觸發程式

·         update:更改某一行時啟用觸發程式

·         delete:從表中刪除某一行時啟用觸發程式

trigger_stmt

是當觸發程式啟用時執行的語句。如果你打算執行多個語句,可使用begin 

... end復合語句結構。

mysql觸發器是mysql資料庫的重要概念,下面為您介紹三個mysql觸發器的例子,供您參考,希望對您學習mysql觸發器方面能有所幫助。

示例一  

delimiter

//create

trigger

insertuser

before

insert

onuser

foreach row

begin

insert

into user_group(uid,gid) values(new.uid,'

group4444444444

');

end;//

delimiter ;

示例二

delimiter

//create

trigger

insertuser

before

insert

onuser

foreach row

begin

if new.type=

2then

insert

into user_group(uid,gid) values(new.uid,'

group4444444444

');

else

insert

into user_group(uid,gid) values(new.uid,'

group55555555555

')

endif

;

end;//

delimiter ;

示例三:

delimiter

//create

trigger

insertuser

before

insert

onuser

foreach row

begin

if new.type=

1then

insert

into user_group(uid,gid) values(new.uid,'

578d3369633b47bd9c1fe8bf905cbfb1

');

endif

;

if new.type=

2then

insert

into user_group(uid,gid) values(new.uid,'

387bcd57fc5a4c3c9de83ee210fef661

');

endif

;

end;//

delimiter ;

oracle序列及觸發器案例

oracle在建立表時和其他的資料庫有點不一樣,如sql server可以在int型別的字段後加上identity 1,1 該字段就會從1開始,按照 1的方式自增,將這個字段設定為主鍵,有利於我們進行資料的插入操作。mysql中可以使用 auto increment 即可。但是oracle有點麻煩,...

三個資料庫的觸發器

當使用者a,b存放資料到tablec的時候,會將使用者a插入的資料的主鍵值和使用者名稱一起存放到tabled去 即tablec id pk name,pass a使用者插入 23,a1 a2 b使用者插入 20,b1 b2 觸發器的作用是將 23,a 插入到表tabled去 mysql delimi...

針對乙個SQL SERVER 表的三個觸發器

第乙個 create trigger 更新資料 on dbo table1 for update asif datefirst 5 return set datefirst 5 update table1 set table1.順序 table1.順序 1 from table1,inserted,...