MySQL触发器简单用法示例
作者:笑笑别人 发布时间:2024-01-26 11:26:53
标签:MySQL,触发器
本文实例讲述了MySQL触发器简单用法。分享给大家供大家参考,具体如下:
mysql触发器和存储过程一样,是嵌入到mysql的一段程序,触发器是由事件来触发的,这些事件包括,INSERT,UPDATE,DELETE,不包括SELECT
创建触发器
CREATE TRIGGER name,time,event ON table_name FOR EACH ROW trigger_stmt
例如
CREATE TRIGGER ins_sum BEFORE INSERT ON account FOR EACH ROW SET @sum = @sum + NEW.amount
有多个执行语句的触发器
CREATE TABLE test1(a1 INT);
CREATE TABLE test2(a2 INT);
CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE test4(
a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
b4 INT DEFAULT 0
);
DELIMITER //
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACHROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 where a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END
//
DELIMITER ;
INSERT INTO test3(a3) VALUES (NULL), (NULL), (NULL), (NULL), (NULL), (NULL),(NULL), (NULL), (NULL), (NULL), (NULL), (NULL);
INSERT INTO test4(a4) VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
//开始测试
INSERT INTO test1 VALUES (1), (3), (1), (7), (1), (8), (4), (4);
查看触发器
SHOW TRIGGERS \G; //查看所有
SELECT * FROM information_schema.TRIGGERS where TRIGGER_NAME = 'testref';
删除触发器
DROP TRIGGER testref;
综合案例
步骤1:创建persons表
CREATE TABLE persons (name VARCHAR(40), num int);
步骤2:创建一个销售额表sales
CREATE TABLE sales (name VARCHAR(40), sum int);
步骤3:创建一个触发器
CREATE TRIGGER num_sum AFTER INSERT ON persons
FOR EACH ROW INSERT INTO sales VALUES (NEW.name,7*NEW.num);
步骤4:向persons表中插入记录
INSERT INTO persons VALUES ('xiaoxiao',20),('xiaohua',69);
SELECT * FROM persons;
SELECT *FROM sales;
希望本文所述对大家MySQL数据库计有所帮助。
来源:http://www.cnblogs.com/mr-amazing/p/4679743.html


猜你喜欢
- 在MySQL服务器启动时,它检查其命令行的操作,来查看它是否应该执行登录并打开相应的日志文件(如果应该的话)。可以让服务器生成两种主要类型的
- 最近没事,写了个在项目经常要取城市或省份名的方法,所以改成了一个类.方便以后调用//****************************
- 需求:从一台Oracle数据库获取数据,本以为是很简单的事情,直接将原来的SqlClient换成OracleClient调用,结果远没自己想
- 目录解决MySQL主从数据库没有同步的两种方法一、不同步情况二、解决方案1.先进入主库,进行锁表,防止数据写入2.进行数据备份3.查看mas
- 一、日志级别1. 级别定义logging模块提供了5种日志级别,分别为:CRITICAL>ERROR>WARNING>IN
- 本文实例讲述了Python回文字符串及回文数字判定功能。分享给大家供大家参考,具体如下:所谓回文字符串,就是一个字符串,从左到右读和从右到左
- 本文实例为大家分享了python实现双色球随机选号的具体代码,供大家参考,具体内容如下双色球随机选号实现代码from random impo
- 来一个简单的例子,看Python如何操作数据库,相比Java的JDBC来说,确实非常简单,省去了很多复杂的重复工作,只关心数据的获取与操作。
- 一般情况下TextArea区输入的文字数量是没有限制的,但是我们可以通过javascript限制表单的文字字数。如下javascript代码
- 1. 前言熟悉 Django 的朋友应该知道,我们可以通过「 inspectdb 」命令将数据库表反向生成 Model 并写入到文件中去比如
- 线性回归在整个财务中广泛应用于众多应用程序中。在之前的教程中,我们使用普通最小二乘法(OLS)计算了公司的beta与相对索引的比较。现在,我
- 一、软件下载MySQL下载安装:官网下载地址:https://www.mysql.com/或者本地下载二、安装须知如果是安装过该软件的卸载重
- 一、前言最近忙里偷闲,做了一个部署数据库及IIS网站站点的WPF应用程序工具。 二、内容此工具的目的是:根据.sql文件在本机上部
- 一、进程介绍进程:正在执行的程序,由程序、数据和进程控制块组成,是正在执行的程序,程序的一次执行过程,是资源调度的基本单位。程序:没有执行的
- 在二维卷积函数tf.nn.conv2d(),最大池化函数tf.nn.max_pool(),平均池化函数tf.nn.avg_pool()中,卷
- 最近老师布置了个作业,爬取豆瓣top250的电影信息。按照套路,自然是先去看看源代码了,一看,基本的信息竟然都有,心想这可省事多了。简单分析
- 函数描述int(x [,base])将x转换为一个整数long(x [,base] )将x转换为一个长整数float(x)将x转换到一个浮点
- 本文实例讲述了PHP实现的服务器一致性hash分布算法。分享给大家供大家参考,具体如下:<?php/** * 对服务器进行一致性has
- 大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用。为什么要使用Cookie呢?Cookie,指
- 假如你目前需要在Microsoft Access数据库中指示不存在数据,可以在“文本”或&l