我是靠谱客的博主 眯眯眼含羞草,最近开发中收集的这篇文章主要介绍MySQL数据库----触发器1. 触发器2. 创建触发器3. 查看和删除触发器4. 注意事项,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 触发器

表中的某条记录修改后,可能导致一系列数据都要被修改,在SQL语句层面上则表现为执行了某条SQL语句后要接着执行一系列语句。例如:当学生表里的一个学生记录被删除,则班级表里对应班级的人数要减一。

触发器常用于上述情况,触发器为表绑定一系列语句,当表中记录发送该变时则触发触发器,自动执行相应语句。

2. 创建触发器

创建触发器需要指明对哪个表进行了什么操作 在这之前或之后 执行设定好的一系列语句

#创建触发器
create trigger 触发器名 before|after insert|update|delete on 表名 for each row 执行语句;

create trigger 触发器名 before|after insert|update|delete on 表名 for each row begin
	执行语句1;
	执行语句2;
	...
	end;
  • 执行语句
    执行语句中常常需要加上条件,且一般是和表名对应的表有关,这时条件里不能出现表名,而需要用NEWOLD代替;

    insert操作,则用new;delete操作,则用old;update操作,new或old都行;

  • 例子
    有一班级表一学生表;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    创建触发器;

    create trigger tri_insert_student after insert on student for each row update class set student_count = student_count+1 where class.id = new.class_id;
    

    对学生表插入新值,班级表学生人数列自动加1;
    在这里插入图片描述

3. 查看和删除触发器

#查看触发器
show triggers;

#删除触发器
drop trigger 触发器名;

4. 注意事项

  • 触发器创建
    创建触发器时,不能有同名触发器;
    两个触发器,触发条件不能相同,即不能是对同一表的相同操作以及相同时间;
  • 分隔符
    当要触发多条语句时,在begin、end之间插入多条SQL语句,SQL语句之间以;作为分隔符;
    在MySQL中同时使用;作为命令的结束符,因此会产生冲突,可以使用DELIMITER $$将结束符设置为$$;
    DELIMITER $$	#改变结束符
    create trigger 触发器名 before|after insert|update|delete on 表名 for each row begin
    执行语句1;
    执行语句2;
    ...
    end
    $$
    DELIMITER ;		#恢复结束符
    

最后

以上就是眯眯眼含羞草为你收集整理的MySQL数据库----触发器1. 触发器2. 创建触发器3. 查看和删除触发器4. 注意事项的全部内容,希望文章能够帮你解决MySQL数据库----触发器1. 触发器2. 创建触发器3. 查看和删除触发器4. 注意事项所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部