mysql学习之触发器
在借阅表和读者表当中存在着这样的关系,如果在借阅表当中添加一条数据,读者表当中对应的累计借书字段就自增1,如果在借阅表当中删除一条数据,读者表当中对应的累计借书字段就自减1,实现本功能的方法如下。
1、创建读者表
CREATE TABLE `t_borrowbook` (
`borrowBookId` int(11) NOT NULL AUTO_INCREMENT,
`bookId` int(11) DEFAULT NULL,
`id` int(11) DEFAULT NULL,
`audienceId` int(11) DEFAULT NULL,
`startTime` datetime DEFAULT NULL,
`endTime` datetime DEFAULT NULL,
`borrowBookDesc` text,
PRIMARY KEY (`borrowBookId`)
)
2、创建借阅表
CREATE TABLE `t_audience` (
`audienceId` int(10) NOT NULL AUTO_INCREMENT,
`audienceName` varchar(20) NOT NULL,
`audienceTypeId` int(10) NOT NULL,
`audienceNumber` varchar(18) NOT NULL,
`sex` varchar(20) DEFAULT NULL,
`cellphone` varchar(11) DEFAULT NULL,
`borrowBookNum` int(10) DEFAULT NULL,
`audienceDesc` text,
PRIMARY KEY (`audienceId`)
)
3、创建插入自增触发器
DELIMITER $$ CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `db_book`.`Tr_borrowbook_Insert` AFTER INSERT
ON `db_book`.`t_borrowbook`
FOR EACH ROW BEGIN
UPDATE t_audience SET borrowBookNum = borrowBookNum+1 WHERE audienceId=new.audienceId;
END$$ DELIMITER ;
4、创建删除自减触发器
DELIMITER $$ CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `db_book`.`Tr_borrowbook_Delete` AFTER DELETE
ON `db_book`.`t_borrowbook`
FOR EACH ROW BEGIN
UPDATE t_audience SET borrowBookNum = borrowBookNum-1 WHERE audienceId=old.audienceId;
END$$ DELIMITER ;
每天进步一点点,一切都是最好的安排。
mysql学习之触发器的更多相关文章
- Mysql学习---视图/触发器/存储过程/函数/执行计划/sql优化 180101
视图 视图: 视图是一个虚拟表(非真实存在),动态获取数据,仅仅能做查询操作 本质:[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用.由 ...
- MySql学习笔记——触发器
今天又学习了一下mysql触发器的相关知识,对此做了一些笔记和总结. 定义及作用 触发器是一个被指定关联到一个表的数据对象,触发器不需要调用,当对一个表的特别事件出现时,它就会被激活.触发器的代码也是 ...
- 我的MYSQL学习心得(十二) 触发器
我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...
- MySQL 学习笔记(三):完整性和触发器设计
(一)完整性设计 方法一.在设计表时定义约束 删除数据库school,建立新数据库school1 drop database school; create database school; use s ...
- Mysql学习总结(10)——MySql触发器使用讲解
触发器(TRIGGER)是由事件来触发某个操作.这些事件包括INSERT语句.UPDATE语句和DELETE语句.当数据库系统执行这些事件时,就会激活触发器执行相应的操作.MySQL从5.0.2版本开 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
随机推荐
- C# lambda表达式(简单易懂)
前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅.据说它是微软自c#1.0后新增的最重要的功能之一 ...
- pb自动注册ole控件
方法一: 1.手工注册OCX控件 将该控件随程序一起发布,然后,将此文件拷到windows\system,或者直接放在本运行目录,然后执行dos命令,run( "regsvr32 *. ...
- iOS 3D Touch 适配开发
3D Touch的主要应用 文档给出的应用介绍主要有两块: 1.A user can now press your Home screen icon to immediately access fun ...
- cocostudio 骨骼动画 setContentScaleFactor
最近在看骨骼动画,看上去挺容易的,但是照着例子做的时候却出现问题了,骨骼之间出现了很大的缝隙,找了很久才发现原来setContentScaleFactor的原因, 出现间隙,是因为各个骨骼是单独在做缩 ...
- python,django做中间件屏蔽非法访问
我使用django1.6. django框架没有urlfilter这样的原生中间件,但是灵活的django设计者为我们留下了更自由的渠道. 在没有使用django以前,我没有接触过如此潇洒的编程方式, ...
- clojure 之 hello world
1. 安装Leiningen 2. lein new app bar 3. lein run Hello, World!
- Orchard中的命令行工具
在Orchard中提供了一个命令行工具,我们可以使用这个命令行工具创建用户.创建博客.生成代码.配置网站.打包模块等.并且这个命令行工具是可以扩充的,只要我们在自己开发的模块中创建一个Command类 ...
- GridView获取CheckBox的值及所在列的ID
//根据GridView的列数进行循环 ; i < GridView1.Rows.Count; i++) { //检查是否有ID为CheckBox1的CheckBox控件,如果有就赋值给Chec ...
- Bash . configure permission denied错误
当你在Linux(我这里是Ubuntu10.04LTS Desktop)下编译安装某个包的时候,你首先是进入到解压目录然后执行“$ ./configure”的,但是有时候你会发现提示错误,错误提示是这 ...
- Linux上安装oracle客户端及sqlldr
1.建立oracle的安装目录,一般为/opt/oracle:2.将安装包instantclient-basic-linux.x64-11.2.0.3.0.zip放入到该目录中,并进行解压:unzip ...