MySql的事务使用与示例详解
作者:shichen2014 发布时间:2024-01-27 17:24:50
标签:MySql,事务
在MySQL中,事务就是一个逻辑工作单元的一系列步骤。事务是用来保证数据操作的安全性。
事务的特征:
1.Atomicity(原子性)
2.Consistency(稳定性,一致性)
3.Isolation(隔离性)
4.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使用事务的关键字
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;
0
投稿
猜你喜欢
- 一、INSERT和REPLACEINSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理
- 摘要:下拉菜单经常带来更多的可用性问题,并且常常容易被混淆。这是因为网页设计师们往往会在不同的几种情况下使用它。同时,滚动的菜单降低了网页的
- 需求:将查询的两列数据导出到excel中 1.选择数据库,右键任务→导出数据,打开导入导出向导,单击下一步2.在打开的SQ
- Python程序能用很多方式处理日期和时间。转换日期格式是一个常见的例行琐事。Python有一个 time 和 calendar 模组可以帮
- 本文实例讲述了Python实现翻转数组功能。分享给大家供大家参考,具体如下:题目描述给定一个长度为n的整数数组a,元素均不相同,问数组是否存
- 使用python生成一个图片验证码,随机的,可以由于验证人机和别的啊,很方便很简单导入模块import randomfrom PIL imp
- 一、前言当我们必须处理可能有多个列和行的大型DataFrames时,能够以可读格式显示数据是很重要的。这在调试代码时非常有用。默认情况下,当
- 前言本文主要给大家介绍了关于python中用Future对象异步返回结果的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的
- 本文实例为大家分享了python实现在线翻译的具体代码,供大家参考,具体内容如下具体效果请看图代码:import urllib.reques
- 先来看一个概念:数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全
- ActiveMQ是java开发的消息中间件服务。可以支持多种协议(AMQP,MQTT,OpenWire,Stomp),默认的是OpenWir
- 这篇文章主要介绍了python使用rsa非对称加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 如何做一个只能从本站点才能访问的页面?可以用与防止盗链<%if left(Request.ServerVariables(&
- 1.前提你要已经安装了 某个 版本的 python, (下载地址 https://www.python.org/downloads/)安装后
- 用了两种方法保存图片,opencv和Image,实践证明opencv非常快from PIL import Imageimport osimp
- NumPy's main object is the homogeneous multidimensional array. It
- 一、软件下载与安装VScode下载地址:https://code.visualstudio.com/VScode的github项目地址(本文
- 带你走进数据类型一:整数、浮点数Python中整数和浮点数的定义以及运算和C++都是一样的,我在这里就不需多说了,我就说明一点:Python
- 问:怎样实现ORACLE中用一条SQL实现其它进制到十进制的转换?答:具体示例如下:-----二进制转换十进制---------------
- 学习目的: 掌握ADO.NET打开SQL SERVER数据库的方法。 今天做个非常普通的例子,做一个用户登录框。主要是通过这个练习认识一下S