Mysql中的触发器定义与使用

 更新时间:2022年11月30日 16:20:59   作者:菜到极致就是渣  
MySQL 的触发器和存储过程一样,都是嵌入到 MySQL 中的一段程序,是 MySQL 中管理数据的有力工具,本文给大家详细介绍mysql触发器的定义语法知识,感兴趣的朋友一起看看吧

一、触发器的介绍

触发器是与表有关的数据库对象,指在insert/update/delete 之前或之后,触发并执行

触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的

完整性,日志记录,数据校验等操作。

使用别名old和new来引用触发器中发生变化的记录内容,这与其它的数据库是相似的。

现在触发器还只支持行级触发,不支持语句级触发。

  触发器类型                   new和old
 insert型触发器        new表示将要挥着已经新增的数据
 update型触发器        old表示修改之前的数据,new表示将要或者已经修改后的数据
 delete型触发器        old表示将要或者已经删除的数据

二、触发器的语法

 语法:
   1:创建触发器语句
   create trigger 触发器名称 before/after  insert/update/delete on 表名 for each row
    begin
      sql语句
    end;
   这里的after和before表示的是增删改之后还是之前触发的
   2:查看触发器语句
     show triggers;
   3:删除触发器
     drop trigger 数据库名.触发器的名字;(如果没有指定数据库的名字,那么默认是当前数据库)

(1)insert触发器

create table user_logs(
    opera_text varchar(1000) comment '插入的·内容',
    opera_time datetime comment '插入的时间',
    opera varchar(20) comment '操作的类型,insert/delete/update'
 );
create trigger tb_user_insert_tigger
    after insert on sp for each row
    begin
        insert into user_logs(opera_text, opera_time, opera)
        values(concat('插入的名字=',new.name,',插入的年龄=',new.age),now(),'insert');
    end;
show triggers;
insert into sp(age, name) values (100,'大魔王');

(2)update触发器

create trigger tb_user_update_trigger
    after update on sp for each row
    begin
        insert into user_logs(opera_text, opera_time, opera) values
        (concat('更新前的名字=',old.name,' 更新前的年龄=',old.age,' 更新后的名字=',new.name,' 更新后的年龄=',new.age),now(),'update');
    end;
show triggers;
update sp set age=1000 where name='李四';

(3)delete触发器

create trigger tb_user_delete_trigger
    after delete on sp for each row
    begin
        insert into user_logs(opera_text, opera_time, opera)
            values(concat('删除的名字=',old.name,' 删除前的年龄=',old.age),now(),'delete');
    end;
show triggers;
delete from sp where name='李四';

到此这篇关于Mysql中的触发器定义与使用的文章就介绍到这了,更多相关MySQL触发器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql数据迁移之data目录复制方法

    mysql数据迁移之data目录复制方法

    这篇文章主要给大家介绍了关于mysql数据迁移之data目录复制方法的相关资料,MySQL的data文件是存储数据库的核心文件,它包含了所有的表、索引、视图和其它相关的数据,通过复制这些文件,我们可以将一个MySQL数据库迁移到另一个地方,需要的朋友可以参考下
    2023-08-08
  • 开启MySQL远程连接的方法

    开启MySQL远程连接的方法

    这篇文章主要介绍了开启MySQL远程连接的方法,帮助大家更好的理解和学习MySQL数据库的使用,感兴趣的朋友可以了解下
    2020-12-12
  • MySQL数据库重命名的快速且安全方法(3种)

    MySQL数据库重命名的快速且安全方法(3种)

    这篇文章主要介绍了MySQL数据库重命名的快速且安全方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • MySQL优化方案参考

    MySQL优化方案参考

    今天小编就为大家分享一篇关于MySQL优化方案参考,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • mysql声明游标的方法

    mysql声明游标的方法

    在本篇文章里小编给大家整理的是关于mysql声明游标的方法和实例内容,需要的朋友们可以参考下。
    2020-09-09
  • MySQL联合索引功能与用法实例分析

    MySQL联合索引功能与用法实例分析

    这篇文章主要介绍了MySQL联合索引功能与用法,结合具体实例形式分析了联合索引的概念、功能、具体使用方法与相关注意事项,需要的朋友可以参考下
    2017-09-09
  • Ubuntu系统安装与配置MySQL

    Ubuntu系统安装与配置MySQL

    这篇文章介绍了Ubuntu系统安装与配置MySQL的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Mysql数据库时间查询举例详解

    Mysql数据库时间查询举例详解

    在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询,下面这篇文章主要给大家介绍了关于Mysql数据库时间查询的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Linux中如何查看mysql版本问题

    Linux中如何查看mysql版本问题

    这篇文章主要介绍了Linux中如何查看mysql版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • mysql 5.7.10 安装配置方法图文教程

    mysql 5.7.10 安装配置方法图文教程

    这篇文章主要为大家分享了mysql 5.7.10 安装配置方法图文教程,感兴趣的小伙伴们可以参考一下
    2016-06-06

最新评论