• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL之触发器

MySQL之触发器

作者:Blank_Space 字体:[增加 减小] 来源:互联网 时间:2017-08-17

Blank_Space通过本文主要向大家介绍了mysql,存储,触发器等相关知识,希望本文的分享对您有所帮助

触发器是个特殊的存储过程:当一个预定义的事件发生的时候,被MySQL自动调用


创建触发器

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

CREATE TRIGGER trigger_name trigger_time trigger_event
ON tb1_name FOR EACH ROW trigger_stmt

trigger_time:触发时机,可以指定为before或after
trigger_event:出发事件,包括INSERT、UPDATE和DELETE
tb1_name:建立触发器的表名
trigger_stmt:触发器程序体

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

CREATE TRIGGER trigger_name trigger_time trigger_event
ON tb1_name FOR EACH ROW  trigger_stmt

trigger_stmt:使用begin和end作为开始与结束

NEW.字段名为触发事件的字段


例:
创建一个counts表,event表

CREATE TABLE counts(id int);
CREATE TABLE event(id int,evt_name varchar(50));

创建一个触发器,向counts表中插入数据后,后向event表中插入数据

CREATE TRIGGER trig_insert AFTER INSERT ON counts
FOR EACH ROW INSERT INTO event VALUES(NEW.id,'after insert');

插入数据
INSERT INTO counts VALUES(1),(2),(3);
查询
SELECT *FROM event;
Output:

+------+--------------+
| id   | evt_name     |
+------+--------------+
|    1 | after insert |
|    2 | after insert |
|    3 | after insert |
+------+--------------+

查看触发器

1、SHOW TRIGGERS
2、在triggers表中查看触发器信息
SELECT *FROM INFORMATION_SCHEMA.TRIGGERS WHERE condition;


删除触发器

DROP TRIGGER [schema_name.]trigger_name
schema_name:数据库名称,可选。

注意:相同的表,相同的事件只能创建一个触发器;及时删除不必要的触发器

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05mysql数据库准备工作实例分享
  • 2018-12-05mysql千万级数据大表该如何优化?
  • 2018-12-05MySQL安全性指南 (1)(转)
  • 2018-12-05sqlserver中去除字符串中连续的分隔符的sql语句
  • 2018-12-05关于Cast函数的文章推荐
  • 2018-12-05MySQL之-查询指定的数据库和表是否存在
  • 2018-12-05Oracle 存储过程总结 二、字符串处理相关函数
  • 2018-12-05解决Mysql收缩事务日志及问题解决办法
  • 2018-12-05mysql— SQL语法之数据定义语句DDL
  • 2017-05-11MariaDB(Mysql分支)my.cnf配置文件中文注释版

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 【mysql教程】MySQL 序列使用
    • MySQL之—优化的图文代码详细介绍
    • 布尔教育燕十八mysql入门视频教程的资源(源码课件)推荐
    • Oracle数据库索引的维护
    • 双机HA函数定义与用法汇总
    • SQL Server"错误 21002: [SQL-DMO]用户 * 已经存在问题解决
    • sqlserver中操作主从关系表的sql语句
    • Window系统下自动备份MySql数据库方法
    • Oracle 11gR2 RAC中修改数据库的SPFILE文件位置
    • 在数据库中自动生成编号的实现方法分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有