mysql中的触发器和事务的操作
触发器 语法
创建触发器:
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt;
trigger_time是触发程序的动作时间。
它能够是BEFORE或AFTER trigger_event指明了激活触发程序的语句的类型。
trigger_event能够是下述值之中的一个:
· INSERT:将新行插入表时激活触发程序,比如。通过INSERT、LOAD DATA和REPLACE语句。
· UPDATE:更改某一行时激活触发程序,比如,通过UPDATE语句。
· DELETE:从表中删除某一行时激活触发程序,比如。通过DELETE和REPLACE语句。
样例:
mysql-> create trigger test
-> before update on table_name for each row
-> update table_name set NEW.updateTime = NOW() where id=NEW.ID;
假设监測的表和更新的表是同一个 则能够省略为
mysql-> create trigger test
-> before update on table_name for each row
-> set NEW.updateTime = NOW() where id=NEW.ID;
删除触发器:
DROP TRIGGER trigger_name;
样例:
mysql->drop trigger trigger_name;
查看触发器:
样例:
mysql->desc triggers;
或者
mysql->select * from triggers where trigger_name='xxxxxx';
mysql->show create trigger trigger_name;
======================================================================================
事务的特征:ACID
- Atomicity(原子性)
- Consistency(稳定性,一致性)
- Isolation(隔离性)
- Durability(可靠性)
注意:事务仅仅针对对数据数据产生影响的语句有效。
show engines //查看mysql锁支持的数据引擎。
MyISAM不支持事物,InnoDB支持事物。
默认情况下,MySQL将以自己主动提交模式执行。这意味着没一条小命令都将当做一个仅仅有一条命令的事物来执行。
假设要让mysql支持支持事务。仅仅须要改动数据引擎(alter table person type=INNODB)。
使用start transaction或者begin命令来开启一个事物,使用commit,或者rollback来结束事物。
事物的结束:事物除了commit,rollback会结束外,使用DDL或者DCL语句也会结束。
保存点:通过保存点机制:用户能够在事物里用savepoint name命令设置一些保存点,以后用户在使用rollback to savepoint name结束事物时,name之前的数据保存,之后的数据不保存。
mysql使用事务的keyword
- begin //打开一个事务。
- commit //提交到数据库。
- rollback //取消操作。
- savepoint //保存。部分取消,部分提交。
- alter table person type=INNODB //改动数据引擎。
演示样例:
- begin
- update person set name='efgh' where id =10
- select * from person
- rollback
- select * from person
演示样例:
- alter table person type=INNODB
- begin
- update person set name='efgh' where id =10
- select * from person
- commit
- select * from person
- begin
- delete from person where id=21
- update person set name='efgh' where id =10
- commit/rollback
针对上面部分提交,必须用到保存点。
事务保存点注意:
1.仅仅能取消到某个保存点 rollback to savepoint p1。
2.不能提交某个保存 commit to savepoint p2//错误写法。
3.最后commit 把未取消的保存点去不提交到数据。
事务保存点使用样例:
- begin;
- update score set score=40 where scoreid=1;
- savepoint s1;
- update score set score=50 where scoreid=2;
- select * from score;
- rollback to savepoint s1;
- select * from score;
- commit。
mysql中的触发器和事务的操作的更多相关文章
- mysql数据库从删库到跑路之mysql:视图、触发器、事务、存储过程、函数
mysql:视图.触发器.事务.存储过程.函数 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果 ...
- mysql:视图,触发器,事务,存储过程,函数
一.视图 视图是一个虚拟表并不是(正实存在的) 创建老师表 create table teacher( id int primary key auto_increment, tname varchar ...
- Mysql视图、触发器、事务、储存过程、函数
一.视图 什么是视图 视图是有一张表或多张表的查询结果构成的一张虚拟表 为什么使用视图 当我们在使用多表查询时 我们的sql语句可能会非常的复杂,如果每次都编写一遍sql'的话无疑是一件麻烦的事情,这 ...
- SQL学习笔记七之MySQL视图、触发器、事务、存储过程、函数
阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名 ...
- mysql:视图、触发器、事务、存储、函数、流程控制
阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 回到顶部 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只 ...
- python开发mysql:视图、触发器、事务、存储过程、函数
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- MySQL视图、触发器、事务、存储过程、函数
视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据 ...
- MySQL视图、触发器、事务、存储过程、内置函数、流程控制、索引
一.视图 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view tea ...
- mysql高级:触发器、事务、存储过程、调用存储过程
一.触发器 二.pymysql事务测试 三.存储过程 四.pymysql调用存储过程 一.触发器 在某个时间发生了某个事件时 会自动触发一段sql语句 create trigger cmd_ins ...
随机推荐
- 用Zebra打造Linux下小型路由器
用Zebra打造Linux下小型路由器 现在的Internet网络相当庞大,不可能在不同的网络之间建立直接的连接,所以这时就必须用路由器为不同网络之间的通信提供路径选择.Linux下搭建路由器价格非常 ...
- golang excel
github.com/tealeg/xlsx 封装的接口简单易用 package main import ( "bufio" "fmt" "githu ...
- 父子margin塌陷
1.使用padding 2.给父级使用border 3.给父级添加属性 overflow:hidden 4.浮动 5.定位{absolute,fixed} 6.伪元素代码 .parent:before ...
- vmware workstation安装windows server 2019
提示需要输入密钥,选择[我没有密钥] 选择有桌面体验的 自定义 新建C盘 100G 选择100G的主分区,下一步 PS:未分配的空间,先不理,安装完系统,进桌面,再分配 开始安装.接下来就是等. 等. ...
- CORS原理
http://blog.csdn.net/renfufei/article/details/51675148 https://html.spec.whatwg.org/multipage/infras ...
- Spring.net的Demo项目,了解什么是控制反转
Spring这个思想,已经推出很多年了. 刚开始的时候,首先是在Java里面提出,后来也推出了.net的版本. Spring里面最主要的就是控制反转(IOC)和依赖注入(DI)这两个概念. 网上很多教 ...
- [1,2,3].forEach(alert);这样的写法有什么利和弊吗?
以下这个问题遇到了之后.问了太阳神,以下是太阳神的解答: [1,2,3].forEach(alert);这样的写法有什么利和弊吗? 首先forEach使用方法非常easy降低代码量, 可是也有非常多地 ...
- openGLES(二)
顶点和着色器 我们使用独立的点集合构建物体,都是使用顶点,之后会使用着色绘制图性,以及告诉OpenGLES如何绘制的小程序. 片段着色器,即每个小的像素的渲染, 顶点着色器确定所绘制图像的 ...
- golang iota
package main import ( "fmt" ) const ( Low = * (iota + ) Medium High ) func main() { //iota ...
- JQuery 当点击input后,单选多选的选中状态
1.当点击input元素,此元素的选中checked的值 = 此元素此时表现的选中与否的状态. eg:input元素开始是未选中,点击后表现的是选中状态,此元素的checked为true(和此元素开始 ...