数据准备:

create table employee ( num int(50),
d_id int(50),
name varchar(50),
age int(50),
sex varchar(50),
homeadd varchar(50)
); insert into employee values(1,1001,'zhangsan',26,'nan','beijing');
insert into employee values(2,1001,'lisi',24,'nv','hunan');
insert into employee values(3,1002,'wangwu',25,'nan','jiangsu');
insert into employee values(4,1004,'aric',15,'nan','yingguo'); select * from employee; create table department ( d_id int(50),
d_name varchar(50),
functione varchar(50),
address varchar(50)
); insert into department values(1001,'keyanbu','yanfachanpin','3lou5hao');
insert into department values(1002,'shengchanbu','shengchanchanp','5louyiceng');
insert into department values(1003,'xiaoshoubu','cehuaxiaoshou','1louxiaoshoudating'); select * from department;

select * from employee;

 select * from department;

==========================================================================

create trigger 触发器名  before| after 触发事件
on 表名 for each row 执行语句; ---------------------------------------------------------------------------- delimiter &&
create trigger 触发器名 before| after 触发事件
on 表名 for each row
begin
执行语句列表
end
&&
delimiter; 触发事件是指触发条件,包括insert、update、delete; 表名指触发事件操作的表的名称;

创建一个表:

create table trigger_time ( exec_time varchar(50)
); select * from trigger_time; ----------select now();

=================================================

创建一个触发器:

create  trigger dept_trig1 before insert on department for each row insert into trigger_time values ( now() );

===========================================

为了演示,先删除一条记录,再添加进去:

delete from department where d_id = 1003;

=========================================

添加刚才删除的记录:

insert into department values(1003,'xiaoshoubu','cehuaxiaoshou','1louxiaoshoudating'); 

===================================================================

在department表insert时,触发器会被触发,我们查看下:

select * from trigger_time;

===========================================================

==========================================================

示例02:

创建第二个演示示例用的时间表:

create table trigger_time1 ( exec_time varchar(50)
); select * from trigger_time1;

==================================================================

创建第二个触发器:

delimiter &&
create trigger dept_trig2 after delete on department for each row
begin
insert into trigger_time1 values ( now() );
insert into trigger_time values ( now() );
end
&&
delimi

================================================

执行删除语句:

delete from department where d_id = 1003;

==========================================

查看被删除记录的表以及2个时间表:

select * from department;
select * from trigger_time;
select * from trigger_time1;

=================================================================================================

查看触发器

1、查看数据库中所有触发器的信息:

show triggers;

========================================================================

2、在triggers表中查看触发器信息

mysql中所有触发器的定义都存在information_schema数据库下的triggers表中,查询triggers表,可以查询数据库中所有触发器的详细信息

select * from information_schema.triggers; /*查询所有*/

select * from information_schema.triggers where trigger_name = 'dept_trig1'; /*单个指定查询*/

注意:在激活触发器时,对触发器中的执行语句存在一些限制。而且触发器有问题,会阻止程序向下执行,而且数据不能回滚。

select * from information_schema.triggers; /*查询所有*/

select * from information_schema.triggers where trigger_name = 'dept_trig1'; 

select * from information_schema.triggers where trigger_name = 'dept_trig2'; 

==================================================

3、删除触发器

drop trigger 触发器名;

select * from information_schema.triggers;

drop trigger dept_trig1;

drop trigger dept_trig2;

mysql——触发器——示例的更多相关文章

  1. MySQL 触发器示例

    简介: MySQL 触发器 这次实验是在一台 MySQL Slave 上进行的,事实证明:从库添加数据库.表.插入.删除数据等,不会导致主从失败. 一.创建实验数据库.表 mysql > cre ...

  2. mysql 触发器示例和注解

    -- 格式 CREATE TRIGGER 触发器名称 AFTER|before insert|update|delete ON 触发表 FOR EACH ROW BEGIN insert into 处 ...

  3. Mysql触发器示例

    begin ); ); ); then set x = (select ID from qn_huiyuan_grade g ); elseif r then set x = (select ID f ...

  4. 【mysql】mysql触发器使用示例

    mysql触发器 时间点:before/after 触发事件: update/delete/insert 时间点+触发事件:构成一个完整的触发器的触发时机: 一个触发时机最多只能由1个Trigger: ...

  5. MySQL触发器使用详解

    MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 创建触发器在MySQL中,创建触发器语法如下: ...

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

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

  7. mysql 触发器 trigger用法 three (稍微复杂的)

    MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 创建触发器 在MySQL中,创建触发器语法如下 ...

  8. Day4 MySql触发器视图索引以及设计优化

    触发器 MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 通过事件触发,不能传参 语法 CREA ...

  9. 数据库-mysql触发器

    MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 一:创建触发器 在MySQL中,创建触发器语法 ...

随机推荐

  1. maven生成jar包编码问题

    要做一个jar文件供外部调用,此jar的源代码中注释为中文,用maven打包后在其它工程中导入后总不能正常显示中文,记录解决方法如下: 在pom.xml中设置默认编码类型为UTF-8: <pro ...

  2. Andrid Studio Gradle sync failed: A problem occurred configuring project ':app' 解决方法

    Android Studio中进行Gradle sync 时出现了这个错误,Android Studio 出错提示是 Gradle sync failed: A problem occurred co ...

  3. Struts2基本原理【转】

    阐述struts2的执行流程. Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心控制器FilterD ...

  4. mybatis 中 if-test 判断大坑

    [<if test="takeWay == '0'">]mybatis的if判断 单个的字符要写到双引号里面才行,改为<if test='takeWay == & ...

  5. 7、菜单栏、工具栏、状态栏、浮动窗口、TextEdit

    新建项目,基类选择QMainWindow,不勾选ui    mainwindow.cpp代码: #include "mainwindow.h" #include <QMenu ...

  6. QT5线程关闭

    QT5线程关闭 QThread析构函数的说明:请注意,删除一个QThread对象不会停止它管理的线程的执行. 删除正在运行的QThread(即isFinished()返回false)将导致程序崩溃. ...

  7. [HG]小G坐电梯 题解

    C 小G坐电梯 题目描述 小G来到了著名的某大厦.大厦一共有n层,初始的时候小G在第 A 层. 小G特别想去B层小 M 的办公室看一看,然而因为安保原因,B层已经被封锁无法进入. 但是小G既然来了,就 ...

  8. Linux命令-文件传输

    Linux命令-文件传输 Linux lprm命令 Linux lprm命令用于将一个工作由打印机贮列中移除 尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将常未送到打印机的工作取消.由于 ...

  9. 我的 CSDN 博客目录索引(主要记录了我学习视频、书籍的笔记,持续更新中)

    我的 CSDN 博客地址: lw_power的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/lw_power 佟刚老师<Spring4视频教程>学习笔记 ...

  10. C++入门经典-例6.8-gets_s与puts的应用

    1:使用标准输入函数cin和格式化输入函数scanf时都存在这样一个问题:当输入空格时,程序不会接受空格符之后的内容内容. 输入函数gets_s与输出函数puts都只以结束符'\0'作为输入\输出结束 ...