金沙澳门官网下载app-金沙澳门官网网址

按照激活触发器时所执行的语句条目,mysql在触发

create trigger trigger_name before|after trigger_event on table_name for each row begin trigger_stmt end

mysql学习笔记之五(触发器)

触发器(trigger)是mysql的数据库对象之一,该对象与编程语言中的函数非常类似,都需要声明、执行,但是触发器的执行不是由程序调用,也不是手工启动,而是由事件来触发,激活从而实现执行。

实例:
1、学生表中拥有字段学生姓名,字段学生总数,每当添加一条学生记录时,学生总数就必须同时改变。
2、在顾客信息表中拥有字段顾客名字,字段顾客电话和字段顾客地址缩写,每当添加一条关于顾客记录时,都需要检查电话号码格式是否正确,顾客地址缩写是否正确。

总之,需要在表发生更改时,自动进行一些处理,如检查数据合法性,触动其他字段更新,mysql的约束里没有字段大小范围的约束。
mysql在触发如下语句时,就会自动执行所设置的操作:

1、DELETE
2、INSERT
3、UPDATE

其他sql语句则不会激活触发器

一个表在相同触发时间的相同触发时间,只能创建一个触发器。因此,对于有经验的用户,当在创建触发器之前,需要查看mysql软件中是否已经存在该标示符的触发器和触发器的相关事件。

一、创建
1、创建有一条执行语句的触发器

CREATE TRIGGER TRIGGERNAMEBEFORE|AFTER TRIGGER_EVENT

ON TABLE_NAME FOR EACH ROW

TRIGGER_STMT

BEFORE和AFTER
参数指定了触发器执行的时间
金沙澳门官网网址 ,trigger_EVENT
金沙澳门官网下载app ,参数表示了触发事件,即触发器执行条件,包含delete,insert,update;
for each row
参数表示任何一条记录上的操作满足触发事件都会触发触发器;
trigger_stmt
参数表示激活触发器后被执行的语句
例:创建两个表t_dept和t_diarycreate table t_dept(

detpno int,
dname varchar(20),
loc varchar(20)
);create table t_diary(
diaryno int primary key,
tablename varchar(20),
diarytime datetime
);desc t_dept;
desc t_diary;
create trigger tri_diarytimebefore insert
on t_dept for each row
insert into t_diaty values(null,'t_dept',now());

insert into t_dept values(1,'cjgongdept','shanxi');验证:select * from t_diary;

 

2、创建包含多条执行语句的触发器  

create trigger triggername

before|after trigger_eventon tablename for each row
begin
trigger_stmt
end

在mysql中,一般情况下用";"符号作为语句的结束符,可是在创建触发器的时候,需要用到";"符号作为执行语句的结束符号。为了解决这个问题,可以使用关键字delimiter语句,例如"delimiter$$",可以用来实现将结束符设置成"$$"。
例:

delimiter $$

create trigger tri_diarytime2after insert
on t_dept for each row
begin
insert into t_diary values(null,'t_dept',now());
insert into t_diary values(null,'t_dept',now());
on
$$
delimiter ;
insert into t_dept values(2,'cjgongdept','shanxi');

验证:

select * from t_diary;

二、查看

show triggersG

三、删除

drop trigger triggername
show triggersG

触发器(trigger)是mysql的数据库对象之一,该对象与编程语言中的函数非常类似,都需要声明、执行,但是触发...

create trigger tri_diaryteim before insert on t_dept for each row insert into t_diary values(null,'t_dept',now());//功能说明:向部门表插入一条记录之前向表t_diary插入当前时间记录。

2.创建触发器: 按照激活触发器时所执行的语句条目,可以将触发器分为“一个执行语句的触发器”和“多个执行语句的触发器”

create trigger trigger_name before | after trigger_event on table_name for each row trigger_stmt

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

语法形式如下:

3.查看触发器:

语法为:drop trigger trigger_name;

示例:

在MySQL数据库中,数据库对象表是存储和操作数据的逻辑结构,而数据库对象触发器则用来实现由一些表事件触发的某个操作。在数据库系统中,当执行表事件时,则会激活触发器,从而执行器包含的操作。触发器的操作包含创建、查看、删除。

语法形式为:

3.删除触发器:

2.2 创建包含多条执行语句的触发器:

本文由金沙澳门官网下载app发布于金沙澳门官网,转载请注明出处:按照激活触发器时所执行的语句条目,mysql在触发

您可能还会对下面的文章感兴趣: