Heim  >  Artikel  >  Datenbank  >  Mysql那些事儿之(十)触发器一_MySQL

Mysql那些事儿之(十)触发器一_MySQL

WBOY
WBOYOriginal
2016-06-01 13:38:59786Durchsuche

bitsCN.com


Mysql那些事儿之(十)触发器一

 

相关链接:

Mysql那些事儿之(一)mysql的安装

http:///database/201210/162314.html;

Mysql那些事儿之(二)有关数据库的操作

http:///database/201210/162315.html;

Mysql那些事儿之(三)有关数据表的操作

http:///database/201210/162316.html;

Mysql那些事儿之(四)数据表数据查询操作

http:///database/201210/162317.html;

Mysql那些事儿之(五)操作时间

http:///database/201210/162318.html;

Mysql那些事儿之(六)字符串模式匹配

http:///database/201210/163969.html;

Mysql那些事儿之(七)深入select查询

http:///database/201210/163970.html;

Mysql那些事儿之(八)索引

http:///database/201210/163971.html;

Mysql那些事儿之(九)常用的函数

http:///database/201210/164229.html

 

mysql从5.0.2版本开始支持触发器的功能。

触发器是什么?触发器就是与表有关的数据库对象,在满足定义的条件时触发,并且执行触发器中定义的语句。

我们来看一下触发器的语法结构:

 

Sql代码  

create trigger trigger_name trigger_time trigger_event  

on table_name  

for each row  

begin  

   trigger_stmt  

end;  

 

trigger_name是说明触发器的名称;

trigger_time是说明触发器的时间,after、before;

trigger_event是说明触发器的事件,比如delete、update、insert;

trigger_stmt是说明触发器要执行的事物语句,也就是你要干什么的东西,写在这里。

     

举例:

建立数据库:

 

Sql代码  

create database db_test;  

建立film表:

Sql代码  

create table film(  

id smallint unsigned not null,  

name varchar(40),  

txt text,  

primary key(id)  

);  

 

在这儿写一个简单的触发器示例:

 

业务规则是 在向film表插入数据时,同时向日志表film_text中也插入一条数据.

     

当然还得建立film_text表:

 

Sql代码  

create table film_text(  

id smallint unsigned not null auto_increment,  

name varchar(40),  

txt text,  

primary key(id)  

);  

 

现在可以按照触发器的语法结构来写触发器了。

触发器代码:

 

Sql代码  

create trigger trigger_film  --trigger_film为触发器的名称  

after                                   --after为触发器要发生的时间  

insert                                 --insert为触发器发生时的条件  插入操作  

on film                                --建立触发器的表名  

for each row                      --说明触发器为行级触发器  

begin  

   --触发器要执行的逻辑  

  insert into film_text(id,name,txt) values(new.id,new.name,new.txt);  

end;  

     

运行完这个触发器之后,当在另一个film表里插入数据后,film_text里也将增加一条数据。

 

bitsCN.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn