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

Mysql中的触发器简单介绍及使用案例

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

通过本文主要向大家介绍了mysql创建触发器,mysql数据库触发器,mysql删除触发器,mysql 查看触发器,mysql触发器等相关知识,希望本文的分享对您有所帮助
什么是触发器?

触发器是数据库的一个程序,他是用来监听着数据表的某个行为,一旦数据表的这个行为发生了,马上执行相应的sql语句

触发器的语法结构:

create trigger 触发器的名称触发器事件 on 监听的表名 for each row 行为发生后执行的sql语句

触发器事件组成:;两部分组成:

触发器事件发生的时间-----是在监听的表的行为 after before 常用的是after

触发器执行的内容:增删改

创建order 表的时候,需要注意,因为order在mysql中是一个关键字排序,为了避免错误的发生,我们可以添加反引号,表明这不是一个关键字

案例研究:

一旦生成订单,对应的库存表要减去相应的数据

(1)建两张表 :一个商品goods表 一个订单order表
mysql> create table goods(goods_id int primary key auto_increment,goods_name var
char(64),shop_price decimal(10,2),goods_number int)engine=mysiam default charset
=utf8;

mysql> create table `order`(goods_id int primary key auto_increment,goods_name v
archar(64),buy_number int)engine=mysiam default charset=utf8;

mysql> insert into goods values(null,'nokiaN85',2000,35),(null,'iphone4S',4500,3
0),(null,'Lnmia',5000,40),(null,'samsung',4200,20);

mysql> select*from goods;
+----------+------------+------------+--------------+
| goods_id | goods_name | shop_price | goods_number |
+----------+------------+------------+--------------+
| 1 | nokiaN85 | 2000.00 | 35 |
| 2 | iphone4S | 4500.00 | 30 |
| 3 | Lnmia | 5000.00 | 40 |
| 4 | samsung | 4200.00 | 20 |
+----------+------------+------------+--------------+

(2)创建触发器
mysql> create trigger alter_goods_number after insert on `order` for each row up
date goods set goods_number=goods_number-5 where goods_id=1;

mysql> insert into `order` values(1,'nokiaN85',5);

mysql> select*from goods;
+----------+------------+------------+--------------+
| goods_id | goods_name | shop_price | goods_number |
+----------+------------+------------+--------------+
| 1 | nokiaN85 | 2000.00 | 30 |
| 2 | iphone4S | 4500.00 | 30 |
| 3 | Lnmia | 5000.00 | 40 |
| 4 | samsung | 4200.00 | 20 |
+----------+------------+------------+--------------+


new 的使用 mysql> create trigger alter_goods_number after insert on `order` for each row up
date goods set goods_number=goods_number-new.buy_number where goods_id=new.goods
_id;

mysql> insert into `order` values(4,'samsung',5);

old 的使用

mysql> create trigger back_goods_number after delete on `order` for each row upd
ate goods set goods_number=goods_number+old.buy_number where goods_id=old.goods_
id;

mysql> delete from `order` where goods_id=1;

更新 (update将之前下的订单撤销,再重新下订单)

mysql> create trigger update_goods_number after update on `order` for each row u
pdate goods set goods_number=goods_number+old.buy_number-new.buy_number where go
ods_id=new.goods_id;

mysql> update `order` set buy_number = 10 ; </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

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

  • MySQL笔记之触发器的应用
  • 如何测试mysql触发器和存储过程
  • mysql 触发器实现两个表的数据同步
  • MySQL触发器使用详解
  • mysql触发器实现oracle物化视图示例代码
  • Mysql中的触发器简单介绍及使用案例

相关文章

  • 2018-12-05php弹出对话框实现重定向示例代码
  • 2018-12-05mysql对象信息实例用法汇总
  • 2018-12-05关于数值处理的6篇文章推荐
  • 2018-12-05MySQL截取和拆分字符串函数用法示例_MySQL
  • 2018-12-05sqlserver中在指定数据库的所有表的所有列中搜索给定的值
  • 2018-12-05sql图形化操作设置级联更新和删除
  • 2018-12-05MySQL prepare语句的SQL语法
  • 2018-12-05MySQL中关于加密和解密的实例详解
  • 2018-12-05对mysql数据库进行优化总结
  • 2018-12-05有关Uber的文章推荐10篇

文章分类

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

最近更新的内容

    • 详解MAC中mysql密码忘记解决办法的示例代码
    • MySQL数据库常用操作和技巧(DBA必备知识)
    • Mysql5.7.17之winx64.zip解压缩版安装配置图文教程
    • SQL Server中通过reverse取某个最后一次出现的符号后面的内容(字
    • mysql root密码的重设方法(亲测可用)
    • 什么是MySQL binlog? MySQL binlog的用途及格式解析
    • SQL 合并多行记录的相同字段值
    • win2003 安装 sqlserver 2005的方法
    • 与MSSQL对比学习MYSQL的心得(一)--基本语法
    • mysql 5.0.67最新版替代MySQL 5.0.51b版本官方下载

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

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