在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;

您可能感兴趣的文章:深入解析MySQL的事务隔离及其对性能产生的影响MySQL中Innodb的事务隔离级别和锁的关系的讲解教程MySQL数据库事务隔离级别介绍(Transaction Isolation Level)MySQL存储过程例子(包含事务,输出参数,嵌套调用)Mysql中的事务是什么如何使用php+mysql事务rollback&commit示例PHP操作MySQL事务实例mysql 锁表锁行语句分享(MySQL事务处理)mysql实现事务的提交和回滚实例mysql存储过程事务管理简析MySQL 四种事务隔离级别详解及对比

mysql语句中事务可靠性_MySql的事务使用与示例详解相关推荐

  1. mysql默认使用悲观锁_mysql乐观锁和悲观锁详解

    mysql乐观锁和悲观锁详解 相信很多朋友在面试的时候,都会被问到乐观锁和悲观锁的问题,如果不清楚其概念和用法的情况下,相信很多朋友都会感觉很懵逼,那么面试的结果也就不言而喻了. 那么乐观锁和悲观锁到 ...

  2. mysql修改表结构例子_mysql修改表结构方法实例详解

    本文实例讲述了mysql修改表结构方法.分享给大家供大家参考.具体如下: mysql修改表结构使用ALTER TABLE语句,下面就为您详细介绍mysql修改表结构的语句写法,希望对您学习mysql修 ...

  3. mysql表分区数量限制_MySQL分区表的局限和限制详解

    禁止构建 分区表达式不支持以下几种构建: 存储过程,存储函数,UDFS或者插件 声明变量或者用户变量 可以参考分区不支持的SQL函数 算术和逻辑运算符 分区表达式支持+,-,*算术运算,但是不支持DI ...

  4. mysql命令导入导出数据库_MYSQL命令行导入导出数据库详解

    Mysql命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql ...

  5. mysql的double类型数据_mysql数据类型double和decimal区别详解

    实数是带有小数部分的数字.然而,它们不只是为了存储小数部分,也可以使用 DEClMAL 存储比 BIGINT还大的整数. MySQL 既支持精确类型,也支持不精确类型. FLOAT 和  DOUBLE ...

  6. mysql基于时间盲注_MYSQL基于时间的盲注详解

    MYSQL基于时间的盲注 联合查询,报错注入,以及布尔盲注,都是基于攻击网站会回显消息,或者将错误信息返回在前端,或者会返回web页面的正确或错误 但是有时候网站关闭了错误回显或过滤了某些关键字,网页 ...

  7. mysql延迟关联为什么快_MySQL 覆盖索引与延迟关联详解

    本期来谈谈覆盖索引与延迟关联.在此之前,我们先简单建立一个订单表 Orders 用于举例说明.表中共包含 3 个字段: id int product_id name CREATE TABLE `ord ...

  8. mysql 索引表的应用_MySQL查询优化之索引的应用详解

    糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响. 如同其它学科,优化查询性能很大程度上决定于开发者的直觉.幸运的是,像MySQL这 ...

  9. mysql表空间权限_MySQL InnoDB表空间加密示例详解

    前言 从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密.该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系 ...

最新文章

  1. pytorch基础知识整理(五) 优化器
  2. spring和activemq的结合(五)
  3. cascader 动态加载 回显_Elementui cascader 级联选择器 动态加载数据,保存后回显的问题...
  4. EF中Take和Skip的区别
  5. php 一些个 常用 函数
  6. Laravel核心解读--Database(二) 查询构建器
  7. 定时任务_定时任务Quartz入门
  8. ORACLE常用函数汇总【转】
  9. linux设备驱动之PCIE驱动开发
  10. linux cat 文件合并,linux cat两个文件是肿么合并的
  11. 国家各个政府机构网站
  12. 房地产公司网站建设需要多少钱
  13. bookxnote手机版_bookxnote中文版下载
  14. 测试开发工程师的发展
  15. python绘制随机网络图形
  16. 会议室预约系统 会议预约 会议预约触摸屏 会议预约管理系统
  17. ora-600内部错误的类型
  18. Asp.Net C# - AES加密、解密
  19. linux培训好还是自学好,Linux培训好还是自学好,该怎么判断自己适合哪种方式?...
  20. python 断点_断点python_python 断点_python断点定义 - 云+社区 - 腾讯云

热门文章

  1. 3D网页游戏场景打包与加载
  2. php 的函数参数值类型限定
  3. Linux下添加DB2用户
  4. PC机键盘的处理过程
  5. TikTok Shop新增三大站点,已开放申请
  6. 网络协议是什么?—Vecloud微云
  7. Description Resource Path Location Type Project configuration is not up-to-d
  8. 领扣(LeetCode)最长公共前缀 个人题解
  9. 三次握手,四次挥手?
  10. 2016012086+杨岚青+散列函数应用及安全性