本文介绍下,一个mysql触发器的例子,在数据插入前更新相关内容,有需要的朋友参考下。
mysql触发器的例子,如下:
001 |
mysql> CREATE TABLE Employee( |
003 |
-> first_name VARCHAR (15), |
004 |
-> last_name VARCHAR (15), |
007 |
-> salary FLOAT (8,2), |
009 |
-> description VARCHAR (15) |
011 |
Query OK, 0 rows affected (0.03 sec) |
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) |
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) |
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) |
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) |
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) |
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) |
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) |
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) |
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 |
8 rows in set (0.00 sec) |
070 |
mysql> CREATE TRIGGER myTrigger BEFORE UPDATE ON employee //创建mysql触发器 |
074 |
-> IF NEW.id > 5 THEN |
075 |
-> SET NEW.first_name = NEW.first_name+ " *" ; |
078 |
-> IF NEW.salary IS NULL OR NEW.salary = 0 THEN |
079 |
-> SET NEW.salary = 100; |
081 |
-> SET NEW.salary = NEW.salary + 100; |
087 |
Query OK, 0 rows affected (0.00 sec) |
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
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 |
8 rows in set (0.00 sec) |
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 |
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 |
8 rows in set (0.00 sec) |
132 |
mysql> drop table Employee; |
133 |
Query OK, 0 rows affected (0.02 sec) |
本文原始链接:http://www.jbxue.com/db/11615.html
- Cassandra1.2文档学习(10)—— 插入和更新数据
参考数据:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_ ...
- mysql命令行批量插入100条数据命令
先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为" ...
- Python中elasticsearch插入和更新数据的实现方法
Python中elasticsearch插入和更新数据的实现方法 这篇文章主要介绍了Python中elasticsearch插入和更新数据的实现方法,需要的朋友可以参考下 首先,我的索引结构是酱紫的. ...
- MySQL(九)插入、更新和删除
常用的SQL语句,除了select用于查询,还有insert.update.delete等. 一.insert insert:用来插入(或添加)行到数据库中,常见方式有以下几种: ①插入完整的行: ② ...
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...
- MySql使用游标Cursor循环(While)更新数据
#要修改的变量 DECLARE var_ID VARCHAR(50) DEFAULT ''; #需要修改的数据的数量 DECLARE var_UpdateCount INT; #当前循环次数 DECL ...
- SQL server 批量插入和更新数据
批量插入数据 insert into A表数据库名.[dbo].A(a,b,c) (select a,b,c from B表数据库名.[dbo].B) 批量更新数据 根据身份证第二位更新性别 upda ...
- mybatis 注解的方式批量插入,更新数据
一,当向数据表中插入一条数据时,一般先检查该数据是否已经存在,如果存在更新,不存在则新增 使用关键字 ON DUPLICATE KEY UPDATE zk_device_id为主键 model ...
- Asp.Net MVC EF之二:原生EF插入,更新数据的正确方法
引言 EF是相对与Dapper.NHibernate官方首推的ORM框架,其在开发过程中的方便,快捷毋庸置疑的,但由于EF本身的一些缓存机制.跟踪机制,所以在使用时有些地方需要特别注意. 下面我将自己 ...
随机推荐
- spring源码分析之spring-web http详解
spring-web是spring webmvc的基础,它的功能如下: 1. 封装http协议中client端/server端的request请求和response响应及格式的转换,如json,rss ...
- [C++知识点]2015.4.18
1.“static_cast/强制转换”后普通函数.虚函数的表现 A基类 B子类 实例aPtr:将B实例强制抓换得到的A实例 实例bPtr:将A实例强制转换得到的B实例 总结: (1) aPtr因为是 ...
- UITableView优化那点事
forkingdog关于UITableView优化的框架其实已经能够应用在一般的场景,且有蛮多的知识点供我们借鉴,借此站在巨人的肩膀上来分析一把. 至于UITableView的瓶颈在哪里,我相信网上随 ...
- Android Sutido 编译速度优化
虽然Android Studio 此时已经更新到了Android Studio 2.1版本,build 版本android-studio-bundle-143.2739321.但是在安装该版本都是根据 ...
- C#基础篇--文件(流)
1:Path类是专门用来操作文件路径的(Path类是静态类):当然用字符串的处理办法也能实现. string str = @"C:\Users\成才\Desktop\Hashtable.t ...
- 数据结果与算法分析(1)——算法分析
在确定一个算法正确的同时,也要保证算法的有效性.算法分析的最重要的标准时运行时间T(N),运行时间与输入元素个数N有关. 数学基础 T(N) = O(f(N)) 表示T(N ...
- Python基础:1.数据类型(列表)
提示:python版本为2.7,windows系统 1.列表(List) List,是一个有序的集合,可以添加.删除其中的元素. >>> colors = ['red', 'oran ...
- jQuery+php实现ajax文件即时上传
很多项目中需要用到即时上传功能,比如,选择本地图片后,立即上传并显示图像.本文结合实例讲解如何使用jQuery和PHP实现Ajax即时上传文件的功能,用户只需选择本地图片确定后即实现上传,并显示上传进 ...
- 浅谈用java解析xml文档(一)
关于xml本身的语法及使用的环境不多说了,网上有很多规则, 然对xml文档进行解析,一般分为四种解析方式,基于java官方文档的Dom 和Sax解析,还有就是基于 第三方jar包的 Jdom 和 Do ...
- 忘记root口令的处理方法
最近在拜读<Unix & Linux 大学教程>这本书,这本书写得不错.关于Unix和Linux比较介绍比较深入根源,内容也比较详细,很值得去拜读. 在书中的附录中有一 ...