MySQL创建触发器样例
# init
DROP TABLE IF EXISTS students;
DROP TABLE IF EXISTS class;
# 创建测试用的班级表
CREATE TABLE class (
class_id VARCHAR(10) PRIMARY KEY,
stu_cnt INT(32) DEFAULT 0
);
# 创建测试用的学生表
CREATE TABLE students (
id INT(32) NOT NULL AUTO_INCREMENT PRIMARY KEY,
class_id VARCHAR(10),
sname VARCHAR(20),
CONSTRAINT fk_students_class_id FOREIGN KEY (class_id) REFERENCES class (class_id)
);
# 创建触发器tg_students
CREATE TRIGGER tg_students
AFTER INSERT
ON students FOR EACH ROW
BEGIN
DECLARE c int;
SELECT stu_cnt INTO c FROM class WHERE class_id=NEW.class_id;
UPDATE class SET stu_cnt=c+1 WHERE class_id=NEW.class_id;
end;
# 创建班级的测试数据
INSERT INTO class (class_id) VALUES ('c101');
INSERT INTO class (class_id) VALUES ('c102');
INSERT INTO students (class_id,sname) VALUES ('c101', 'zifeiy');
INSERT INTO students (class_id,sname) VALUES ('c102', 'feifei');
INSERT INTO students (class_id,sname) VALUES ('c101', 'feiyu');
# 查看结果
SELECT * from class
在这个测试样例中创建了一个student表,和一个class表,每当我在student表中新增一个学生,class表终stu_cnt这个字段就会新增1。
MySQL创建触发器样例的更多相关文章
- myloader恢复mysql数据库演示样例
mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具.备份方式为逻辑备份.它支持多线程.备份速度远高于原生态的mysqldump以及众多优异特性.与其相配套的恢复工具则是mylo ...
- MySQL创建触发器的时候报1419错误( 1419 - You do not have the SUPER privilege and binary logging is enabled )
mysql创建触发器的时候报错: 解决方法:第一步,用root用户登录:mysql -u root -p第二步,设置参数log_bin_trust_function_creators为1:set gl ...
- mysql创建触发器
触发器语句只有一句话 可以省略begin和end CREATE trigger `do_praise` after insert on praise for each row update post ...
- mysql+ssh整合样例,附源代码下载
项目引用jar下载:http://download.csdn.net/detail/adam_zs/7262727 项目源代码下载地址:http://download.csdn.net/detail/ ...
- mysql 存储过程 演示样例代码
drop procedure if exists P_SEQUENCE; /** 暂省略包 @AUTO LIANGRUI 2014/6/27 T_PRO_PRODUCT 表 排序 对整个表进行按序号排 ...
- docker-compose.yml样例(mysql主从+mycat读写分离)
Docker-compose.yml文件示例 1.mysql主从复制的docker-compose.yml文件 # cat docker-compose.yml version: '2' # 这个ve ...
- MySQL 创建函数(Function)
目标 怎么样MySQL创建数据库功能(Function) 语法 CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,參数是可选的 RETUR ...
- Sakila——MySQL样例数据库解析(已经迁移)
一.Introduction Sakila可以作为数据库设计的参考,也可作为实验数据.我是用作数据仓库和ODI学习的实验数据. The Sakila sample database was devel ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
随机推荐
- 在 windows 上安装 git 2.22
下载 by win 下载地址:https://git-scm.com/download/win 如下图.选择对应的版本下载: 安装 by win 1.双击下载好的git安装包.弹出提示框.如下图: 2 ...
- Z+F激光扫描仪
链接:https://zhuanlan.zhihu.com/p/48589754 三维扫描仪有三个误差来源: ● 线性误差(激光雷达部分/LARA) ● 测距噪声(激光雷达部分/LARA) ● 测角误 ...
- JS 导出网页中Table内容到excel
<html> <head> <script type="text/javascript" language="javascript" ...
- Oracle ORA-00600[2662] 解决
一.问题描述 1.数据库情况 1)数据库版本:11.2.0.4: 2)未开启归档: 3)没有备份:无RMAN备份.无DUMP备份: 4)数据库redo log 日志组,每组只有一个成员: 2.问题出现 ...
- element---------------el-menu组件_实现路由跳转及当前项的设置
<el-menu router :default-active="$route.path" class="el-menu-vertical-demo" @ ...
- 关闭linux下的主板响声(主板蜂鸣器)
在从deepin的kdd桌面换到xfce桌面后,命令行和界面操作上动不动会让主机响一声. manjaro的xfce版也是如此,不知道是不是linux下xfce的通病. 主要是搜索的时候百度的结果很奇葩 ...
- php des 对称加解密类
<?php header("Content-Type: text/html;charset=utf-8"); /** * des 对称加解密 */ class des { p ...
- 异步协程asyncio+aiohttp
aiohttp中文文档 1. 前言 在执行一些 IO 密集型任务的时候,程序常常会因为等待 IO 而阻塞.比如在网络爬虫中,如果我们使用 requests 库来进行请求的话,如果网站响应速度过慢,程序 ...
- ERROR: node with name "rabbit" already running on "localhost"
rabbitmqctl start_app启动没有这个问题
- (转)hadoop balancer(重新平衡)
借鉴:https://blog.csdn.net/mnasd/article/details/80369603?utm_source=blogxgwz2 参考文档: http://blog.csdn ...