# 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创建触发器样例的更多相关文章

  1. myloader恢复mysql数据库演示样例

     mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具.备份方式为逻辑备份.它支持多线程.备份速度远高于原生态的mysqldump以及众多优异特性.与其相配套的恢复工具则是mylo ...

  2. 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 ...

  3. mysql创建触发器

    触发器语句只有一句话 可以省略begin和end CREATE trigger `do_praise` after insert on praise for each row update post ...

  4. mysql+ssh整合样例,附源代码下载

    项目引用jar下载:http://download.csdn.net/detail/adam_zs/7262727 项目源代码下载地址:http://download.csdn.net/detail/ ...

  5. mysql 存储过程 演示样例代码

    drop procedure if exists P_SEQUENCE; /** 暂省略包 @AUTO LIANGRUI 2014/6/27 T_PRO_PRODUCT 表 排序 对整个表进行按序号排 ...

  6. docker-compose.yml样例(mysql主从+mycat读写分离)

    Docker-compose.yml文件示例 1.mysql主从复制的docker-compose.yml文件 # cat docker-compose.yml version: '2' # 这个ve ...

  7. MySQL 创建函数(Function)

    目标 怎么样MySQL创建数据库功能(Function) 语法 CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,參数是可选的 RETUR ...

  8. Sakila——MySQL样例数据库解析(已经迁移)

    一.Introduction Sakila可以作为数据库设计的参考,也可作为实验数据.我是用作数据仓库和ODI学习的实验数据. The Sakila sample database was devel ...

  9. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

随机推荐

  1. java技术哪些是必学的?

    福州seo推广我们接触过java需要的小伙伴们都知道java是一门强大而又复杂的编程语言,现如今在互联网行业,java的身影随处可见,可能刚学习的小伙伴们会被java语言庞大的体系图吓到,不过知识毕竟 ...

  2. Centos 改ssh 端口

    1.修改配置文件:/etc/ssh/sshd_config 2.修改 #Port 22 把前面的#注释删掉,然后添加一个Port XXXX 定义一个自己的.例如我喜欢 Port 22333 3.修改后 ...

  3. sql server 子查询 和exists使用

    概述 子查询的概念: 当一个查询是另一个查询的条件时,称之为子查询.子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY. 外面的 ...

  4. 十五.DNS子域授权、分离解析、缓存DNS服务器

    1.搭建基本DNS服务器 pc7: 1.1 安装软件包 ]# yum -y install bind-chroot bind bind         //域名服务包 bind-chroot  //提 ...

  5. centos6安装Python3环境

    Python3安装 CentOS 6+系统默认安装的python版本是2.6.6,python2版本与python3还有有一些语法上的不一样.我们要把python升级到3版本,但是系统自带的旧版本py ...

  6. hive --metastore三种模式

    在官网上对于这几种模式的介绍如下: 按Metastore数据库位置分: 1.本地/嵌入式Metastore数据库(Derby) 2.远程Metastore数据库(其他的关系型数据库,像mysql.or ...

  7. 搭建vue-cli

    https://www.cnblogs.com/wisewrong/p/8570309.html https://www.jianshu.com/p/1ee1c410dc67

  8. 位于0/nut文件里的'Calculated'边界条件是什么意思?【翻译】

    翻译自:CFD-online 帖子地址:http://www.cfd-online.com/Forums/openfoam-pre-processing/140984-what-does-calcul ...

  9. 走进JavaWeb技术世界11:单元测试框架Junit

    JUnit你不知道的那些事儿 转自 老刘 码农翻身 2016-02-24 话说有一次Eric Gamma 坐飞机的时候偶遇Kent Beck(对,就是极限编程和TDD的发起人) ,  两位大牛见面寒暄 ...

  10. adb shell monkey--APP