一、触发器

触发器是由事件来出发某个动作。这些事件包括insert语句、update语句和delete语句。

当数据库系统执行这些事件时,就会激活触发器执行相应得动作。

触发器是有insert、update、delete等事件来触发某种特定动作。满足触发器的触发条件时,数据库系统就会执行触发器中定义的程序语句。

这样做可以保证某些操作之间的一致性.

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

语法格式:

         create trigger 触发器名 before|after 触发事件

         on 表名 for each row 执行语句

触发器名参数指要创建的触发器的名字;

before和after参数指定了触发器执行的时间;

   before指在触发事件之前执行触发语句;

   after指在触发事件之后执行触发语句;

触发事件指触发的条件,其中包括insert、update、delete;

表名指触发事件操作的表的名称;

for each row表示任何一条记录上的操作满足触发条件都会触发该触发器;

执行语句指触发器被触发后执行的程序;

举例:

create trigger dept_trig1 before insert

on department for each row

inert into trigger_time values(now());

注释:当向department表中执行insert操作时,数据库系统都会在insert语句执行之前向trigger_time表中插入当前时间;

2、创建有多个执行语句的触发器

语法格式:

         create trigger 触发器名 before|after 触发事件

         on 表名 for each row 

         begin

                执行语句列表

         end

执行语句列表表示需要执行的多个执行语句的内容,不同执行语句之间用分好隔开;

注意:

一般情况下,MYSQL默认的是以“;”作为结束执行语句。在创建触发器的过程中,需要用到“;”为了解决这个问题可以用delimiter语句

如“delimiter &&”可以将结束符号变为“&&”。当触发器创建完成之后,可以用命令“delimiter ;”来将结束符号变为“;”。

举例:

delimiter &&

create trigger dept_trig2 aftrer delete

on department for each row

begin
insert into trigger_time values('21:01:01');
insert into trigger_time values('22:01:01');
end && delimiter; 注意:在MYSQL中,一个表在相同的触发时间,只能创建一个触发器; 3、查看触发器 (1)show triggers语句查看触发器信息 语法格式:show triggers; 注释:其结果显示了所有触发器的基本信息,但是该语句无法查询指定的触发器信息,只能查询所有的触发器信息,适合触发器较少时使用 (2)在triggers表中查看触发器信息 在MYSQL中,所有触发器的定义都存储在information_schema数据库下的triggers表中, 查询triggers表,可以查看到数据库中所有触发器的详细信息; 语法格式:select * from information_schema.triggers; 同时该方法可以查询指定触发器的详细信息。 语法格式:select * from information_schema.triggers where trigger_name='触发器名'; 4、触发器的使用 before在触发事件之前执行,after在触发事件之后执行; 注意:触发器中不能包含start transaction、commit或者rollback等关键词,也不能包含call语句。 5、删除触发器 语法格式:drop trigger 触发器名; =====================================================================================================================
=====================================================================================================================
=====================================================================================================================
=====================================================================================================================
=====================================================================================================================
===================================================================================================================== create trigger 触发器名 before| after 触发事件
on 表名 for each row 执行语句; delimiter &&
create trigger 触发器名 before| after 触发事件
on 表名 for each row
begin
执行语句列表
end
&&
delimiter; 触发事件是指触发条件,包括insert、update、delete; 表名指触发事件操作的表的名称;

mysql——触发器——概念的更多相关文章

  1. MySQL 触发器结构及三个案例demo

    --你必须拥有相当大的权限才能创建触发器(CREATE TRIGGER),如果你已经是Root用户,那么就足够了.这跟SQL的标准有所不同. CREATE TRIGGER语法 CREATE TRIGG ...

  2. MySQL触发器更新和插入操作

    一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动 ...

  3. 关于mysql触发器和存储过程的理解

    内容源自:一篇很棒的 MySQL 触发器学习教程 一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊 ...

  4. MySQL触发器的正确使用与案例分析

    以下的文章主要向大家讲述的是MySQL触发器的实际使用详细说明与实际案例分析,同时本文也列举了一些在MySQL触发器的实际式操作中的代码,以下就是文章的详细内容介绍,望大家借鉴. 触发器案例 mysq ...

  5. 一篇很棒的 MySQL 触发器学习教程

    一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动 ...

  6. MySQL触发器和更新操作

    一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动 ...

  7. MySQL 触发器trigger

    一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(af ...

  8. MySQL事务概念与流程和索引控制

    MySQL事务概念与流程和索引控制 视图 1.什么是视图 我们在执行SQL语句其实就是对表进行操作,所得到的其实也是一张表,而我们需要经常对这些表进行操作,拼接什么的都会产生一张虚拟表,我们可以基于该 ...

  9. MySql基本概念(一)

    MySQL基本概念 一. 数据库系统概述: mysql是数据库系统的一种,下面是所有数据库系统中主要的组件. 数据库系统由硬件部分和软件部分构成,硬件主要用于存储数据库中的数据,包括计算机.存储设备. ...

随机推荐

  1. qt5--对话框

    颜色对话框——QColorDialog: 需要   #include <QColorDialog> QColor color=QColorDialog::getColor(QColor(, ...

  2. qt5---资源文件

    创建资源文件: 视频教程:https://www.bilibili.com/video/av66748323/ 右击工程目录--->-->--> 添加资源: 右击资源文件--> ...

  3. centos7安装bower遇到的问题

    Bower依赖node, npm和git. 安装nodejs遇到 Error: Package: 1:nodejs-6.11.1-1.el7.x86_64 (epel) Requires: libht ...

  4. 使用oracle Sqlplus中上下键出现乱码的问题

    安装rlwrap,前提是安装readline和readline-devel yum list | grep readlineyum install -y readline.x86_64 readlin ...

  5. JavaScript生成随机数的方法

    一,函数 Math.ceil();  //向上取整. Math.floor();  //向下取整. Math.round();  //四舍五入. Math.random();  //0.0 ~ 1.0 ...

  6. jquery type属性 语法

    jquery type属性 语法 作用:type 属性描述触发哪种事件类型.大理石直角尺 语法:event.typ 参数: 参数 描述 event     必需.规定要检查的事件.这个 event 参 ...

  7. THUWC 2019游记

    坑先占着QwQ 不太喜欢写Blog, 因此我的Blog一直很冷清,但是还是想写写这种游记啦,反正是给自己看的 Day -4 颓了一整天,一道题都没写 于是无聊用GL写了一个海战游戏,让两个程序对打-- ...

  8. Wordpress可以用来做什么?

    WordPress本身只是一款开源的.基于PHP的博客软件,但是由于WordPress的源码开源.结构优良.插件丰富.主题繁多,以至于是 WordPress成为世界上最流行的博客程序.<Word ...

  9. 【Share Code | Javascript & HTML & CSS】链接悬停显示图像效果

    demo & 代码 链接悬停效果,显示缩略图. 今天给大家分享一组链接悬停效果.悬停链接时显示具有特定效果的缩略图. 这是一些效果: 参考 Image Reveal Hover Effects

  10. 全排列函数next_permutation(a,a+n)

    #include<iostream> #include<algorithm> using namespace std; int main(){ ]; int n; cin> ...