> 데이터 베이스 > MySQL 튜토리얼 > Mysql那些事儿之(十)触发器一_MySQL

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

WBOY
풀어 주다: 2016-06-01 13:38:59
원래의
835명이 탐색했습니다.

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
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿