本文介绍下,一个mysql触发器的例子,在数据插入前更新相关内容,有需要的朋友参考下。

mysql触发器的例子,如下:

001 mysql> CREATE TABLE Employee(
002     ->     id            int,
003     ->     first_name    VARCHAR(15),
004     ->     last_name     VARCHAR(15),
005     ->     start_date    DATE,
006     ->     end_date      DATE,
007     ->     salary        FLOAT(8,2),
008     ->     city          VARCHAR(10),
009     ->     description   VARCHAR(15)
010     -> );
011 Query OK, 0 rows affected (0.03 sec)
012  
013 mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
014     ->              values (1,'Jason',    'Martin',  '19960725',  '20060725', 1234.56,'Toronto',  'Programmer');
015 Query OK, 1 row affected (0.02 sec)
016  
017 mysql>
018 mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
019     ->               values(2,'Alison',   'Mathews',  '19760321''19860221', 6661.78,'Vancouver','Tester');
020 Query OK, 1 row affected (0.00 sec)
021  
022 mysql>
023 mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
024     ->               values(3,'James',    'Smith',    '19781212''19900315', 6544.78,'Vancouver','Tester');
025 Query OK, 1 row affected (0.00 sec)
026  
027 mysql>
028 mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
029     ->               values(4,'Celia',    'Rice',     '19821024''19990421', 2344.78,'Vancouver','Manager');
030 Query OK, 1 row affected (0.00 sec)
031  
032 mysql>
033 mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
034     ->               values(5,'Robert',   'Black',    '19840115''19980808', 2334.78,'Vancouver','Tester');
035 Query OK, 1 row affected (0.00 sec)
036  
037 mysql>
038 mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
039     ->               values(6,'Linda',    'Green',    '19870730''19960104', 4322.78,'New York',  'Tester');
040 Query OK, 1 row affected (0.00 sec)
041  
042 mysql>
043 mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
044     ->               values(7,'David',    'Larry',    '19901231''19980212', 7897.78,'New York',  'Manager');
045 Query OK, 1 row affected (0.00 sec)
046  
047 mysql>
048 mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
049     ->               values(8,'James',    'Cat',     '19960917',  '20020415', 1232.78,'Vancouver''Tester');
050 Query OK, 1 row affected (0.01 sec)
051  
052 mysql>
053 mysql> select from Employee;
054 +------+------------+-----------+------------+------------+---------+-----------+-------------+
055 | id   | first_name | last_name | start_date | end_date   | salary  | city      | description |
056 +------+------------+-----------+------------+------------+---------+-----------+-------------+
057 |    1 | Jason      | Martin    | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto   | Programmer  |
058 |    2 | Alison     | Mathews   | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester      |
059 |    3 | James      | Smith     | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester      |
060 |    4 | Celia      | Rice      | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager     |
061 |    5 | Robert     | Black     | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester      |
062 |    6 | Linda      | Green     | 1987-07-30 | 1996-01-04 | 4322.78 | New York  | Tester      |
063 |    7 | David      | Larry     | 1990-12-31 | 1998-02-12 | 7897.78 | New York  | Manager     |
064 |    8 | James      | Cat       | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester      |
065 +------+------------+-----------+------------+------------+---------+-----------+-------------+
066 rows in set (0.00 sec)
067  
068 mysql> DELIMITER //
069 mysql>
070 mysql> CREATE TRIGGER myTrigger BEFORE UPDATE ON employee //创建mysql触发器
071     -> FOR EACH ROW
072     -> BEGIN
073     ->
074     -> IF NEW.id > 5 THEN
075     ->     SET NEW.first_name = NEW.first_name+ " *";
076     -> END IF;
077     ->
078     -> IF NEW.salary IS NULL OR NEW.salary = 0 THEN
079     ->         SET NEW.salary = 100;
080     -> ELSE
081     ->         SET NEW.salary = NEW.salary + 100;
082     -> END IF;
083     ->
084     -> END
085     ->
086     -> //
087 Query OK, 0 rows affected (0.00 sec)
088  
089 mysql> DELIMITER ;
090 mysql>
091 mysql> update employee set id = 6, first_name= 'new', salary = null; //更新数据
092 Query OK, 8 rows affected, 8 warnings (0.00 sec)
093 Rows matched: 8  Changed: 8  Warnings: 0
--// www.jbxue.com
095 mysql>
096 mysql> select from employee;
097 +------+------------+-----------+------------+------------+--------+-----------+-------------+
098 | id   | first_name | last_name | start_date | end_date   | salary | city      | description |
099 +------+------------+-----------+------------+------------+--------+-----------+-------------+
100 |    6 | 0          | Martin    | 1996-07-25 | 2006-07-25 | 100.00 | Toronto   | Programmer  |
101 |    6 | 0          | Mathews   | 1976-03-21 | 1986-02-21 | 100.00 | Vancouver | Tester      |
102 |    6 | 0          | Smith     | 1978-12-12 | 1990-03-15 | 100.00 | Vancouver | Tester      |
103 |    6 | 0          | Rice      | 1982-10-24 | 1999-04-21 | 100.00 | Vancouver | Manager     |
104 |    6 | 0          | Black     | 1984-01-15 | 1998-08-08 | 100.00 | Vancouver | Tester      |
105 |    6 | 0          | Green     | 1987-07-30 | 1996-01-04 | 100.00 | New York  | Tester      |
106 |    6 | 0          | Larry     | 1990-12-31 | 1998-02-12 | 100.00 | New York  | Manager     |
107 |    6 | 0          | Cat       | 1996-09-17 | 2002-04-15 | 100.00 | Vancouver | Tester      |
108 +------+------------+-----------+------------+------------+--------+-----------+-------------+
109 rows in set (0.00 sec)
110  
111 mysql>
112 mysql> update employee set id = 7, first_name= 'new', salary = 100; //更新数据
113 Query OK, 8 rows affected, 8 warnings (0.00 sec)
114 Rows matched: 8  Changed: 8  Warnings: 0
115  
116 mysql>
117 mysql> select from employee;
118 +------+------------+-----------+------------+------------+--------+-----------+-------------+
119 | id   | first_name | last_name | start_date | end_date   | salary | city      | description |
120 +------+------------+-----------+------------+------------+--------+-----------+-------------+
121 |    7 | 0          | Martin    | 1996-07-25 | 2006-07-25 | 200.00 | Toronto   | Programmer  |
122 |    7 | 0          | Mathews   | 1976-03-21 | 1986-02-21 | 200.00 | Vancouver | Tester      |
123 |    7 | 0          | Smith     | 1978-12-12 | 1990-03-15 | 200.00 | Vancouver | Tester      |
124 |    7 | 0          | Rice      | 1982-10-24 | 1999-04-21 | 200.00 | Vancouver | Manager     |
125 |    7 | 0          | Black     | 1984-01-15 | 1998-08-08 | 200.00 | Vancouver | Tester      |
126 |    7 | 0          | Green     | 1987-07-30 | 1996-01-04 | 200.00 | New York  | Tester      |
127 |    7 | 0          | Larry     | 1990-12-31 | 1998-02-12 | 200.00 | New York  | Manager     |
128 |    7 | 0          | Cat       | 1996-09-17 | 2002-04-15 | 200.00 | Vancouver | Tester      |
129 +------+------------+-----------+------------+------------+--------+-----------+-------------+
130 rows in set (0.00 sec)
131  
132 mysql> drop table Employee;
133 Query OK, 0 rows affected (0.02 sec)

本文原始链接:http://www.jbxue.com/db/11615.html

mysql触发器的例子--插入前更新数据的更多相关文章

  1. Cassandra1.2文档学习(10)—— 插入和更新数据

    参考数据:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_ ...

  2. mysql命令行批量插入100条数据命令

    先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为" ...

  3. Python中elasticsearch插入和更新数据的实现方法

    Python中elasticsearch插入和更新数据的实现方法 这篇文章主要介绍了Python中elasticsearch插入和更新数据的实现方法,需要的朋友可以参考下 首先,我的索引结构是酱紫的. ...

  4. MySQL(九)插入、更新和删除

    常用的SQL语句,除了select用于查询,还有insert.update.delete等. 一.insert insert:用来插入(或添加)行到数据库中,常见方式有以下几种: ①插入完整的行: ② ...

  5. python中的MySQL数据库操作 连接 插入 查询 更新 操作

    MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...

  6. MySql使用游标Cursor循环(While)更新数据

    #要修改的变量 DECLARE var_ID VARCHAR(50) DEFAULT ''; #需要修改的数据的数量 DECLARE var_UpdateCount INT; #当前循环次数 DECL ...

  7. SQL server 批量插入和更新数据

    批量插入数据 insert into A表数据库名.[dbo].A(a,b,c) (select a,b,c from B表数据库名.[dbo].B) 批量更新数据 根据身份证第二位更新性别 upda ...

  8. mybatis 注解的方式批量插入,更新数据

    一,当向数据表中插入一条数据时,一般先检查该数据是否已经存在,如果存在更新,不存在则新增  使用关键字  ON DUPLICATE KEY UPDATE zk_device_id为主键 model  ...

  9. Asp.Net MVC EF之二:原生EF插入,更新数据的正确方法

    引言 EF是相对与Dapper.NHibernate官方首推的ORM框架,其在开发过程中的方便,快捷毋庸置疑的,但由于EF本身的一些缓存机制.跟踪机制,所以在使用时有些地方需要特别注意. 下面我将自己 ...

随机推荐

  1. spring源码分析之spring-web http详解

    spring-web是spring webmvc的基础,它的功能如下: 1. 封装http协议中client端/server端的request请求和response响应及格式的转换,如json,rss ...

  2. [C++知识点]2015.4.18

    1.“static_cast/强制转换”后普通函数.虚函数的表现 A基类 B子类 实例aPtr:将B实例强制抓换得到的A实例 实例bPtr:将A实例强制转换得到的B实例 总结: (1) aPtr因为是 ...

  3. UITableView优化那点事

    forkingdog关于UITableView优化的框架其实已经能够应用在一般的场景,且有蛮多的知识点供我们借鉴,借此站在巨人的肩膀上来分析一把. 至于UITableView的瓶颈在哪里,我相信网上随 ...

  4. Android Sutido 编译速度优化

    虽然Android Studio 此时已经更新到了Android Studio 2.1版本,build 版本android-studio-bundle-143.2739321.但是在安装该版本都是根据 ...

  5. C#基础篇--文件(流)

    1:Path类是专门用来操作文件路径的(Path类是静态类):当然用字符串的处理办法也能实现.  string str = @"C:\Users\成才\Desktop\Hashtable.t ...

  6. 数据结果与算法分析(1)——算法分析

          在确定一个算法正确的同时,也要保证算法的有效性.算法分析的最重要的标准时运行时间T(N),运行时间与输入元素个数N有关. 数学基础         T(N) = O(f(N)) 表示T(N ...

  7. Python基础:1.数据类型(列表)

    提示:python版本为2.7,windows系统 1.列表(List) List,是一个有序的集合,可以添加.删除其中的元素. >>> colors = ['red', 'oran ...

  8. jQuery+php实现ajax文件即时上传

    很多项目中需要用到即时上传功能,比如,选择本地图片后,立即上传并显示图像.本文结合实例讲解如何使用jQuery和PHP实现Ajax即时上传文件的功能,用户只需选择本地图片确定后即实现上传,并显示上传进 ...

  9. 浅谈用java解析xml文档(一)

    关于xml本身的语法及使用的环境不多说了,网上有很多规则, 然对xml文档进行解析,一般分为四种解析方式,基于java官方文档的Dom 和Sax解析,还有就是基于 第三方jar包的 Jdom 和 Do ...

  10. 忘记root口令的处理方法

    最近在拜读<Unix & Linux 大学教程>这本书,这本书写得不错.关于Unix和Linux比较介绍比较深入根源,内容也比较详细,很值得去拜读.       在书中的附录中有一 ...