Mysql中的事务是什么如何使用

在执行sql语句之前,我们要开启事务 start transaction; (2)正常执行我们的sql语句 (3)当sql语句执行完毕,存在两种情况: 1,全都成功,我们要将sql语句对数据库造成的影响提交到数据库中,committ 2,某些sql语句失败,我们执行rollback(回滚),将对数据库操作赶紧撤销 (注意:mysql数据支持事务...
Mysql中的事务是什么如何使用
什么是事务? 事务是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功要不全都失败,这个特性就是事务 注意:mysql数据支持事务,但是要求必须是innoDB存储引擎 解决这个问题: mysql的事务解决这个问题,因为mysql的事务特性,要求这组操作,要不全都成功,要不全都失败,这样就避免了某个操作成功某个操作失败。利于数据的安全 如何使用: (1)在执行sql语句之前,我们要开启事务 start transaction; (2)正常执行我们的sql语句 (3)当sql语句执行完毕,存在两种情况: 1,全都成功,我们要将sql语句对数据库造成的影响提交到数据库中,committ 2,某些sql语句失败,我们执行rollback(回滚),将对数据库操作赶紧撤销 (注意:mysql数据支持事务,但是要求必须是innoDB存储引擎) mysql> create table bank(name varchar(20),money decimal(5,1))engine=innodb defau lt charset=utf8; mysql> inset into bank values('shaotuo',1000),('laohu',5000); mysql> select*from bank; +---------+--------+ | name | money | +---------+--------+ | shaotuo | 1000.0 | | laohu | 5000.0 | +---------+--------+ ------没有成功“回滚”执行rollback mysql> start transaction; //开启事务 Query OK, 0 rows affected (0.00 sec) mysql> update bank set money=money+500 where name='shaotuo'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update bank set moey=money-500 where name='laohu'; ERROR 1054 (42S22): Unknown column 'moey' in 'field list' mysql> rollback; //只要有一个不成功,执行rollback操作 Query OK, 0 rows affected (0.01 sec) mysql> select*from bank; +---------+--------+ | name | money | +---------+--------+ | shaotuo | 1000.0 | | laohu | 5000.0 | +---------+--------+ ------成功之后 进行commit操作 mysql> start transaction; //开启事务 Query OK, 0 rows affected (0.00 sec) mysql> update bank set money=money+500 where name='shaotuo'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update bank set money=money-500 where name='laohu'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> commit; //两个都成功后执行commit(只要不执行commit,sql语句不会对真实的数据库造成影响) Query OK, 0 rows affected (0.05 sec) mysql> select*from bank; +---------+--------+ | name | money | +---------+--------+ | shaotuo | 1500.0 | | laohu | 4500.0 | +---------+--------+ 您可能感兴趣的文章:MySQL存储过程例子(包含事务,输出参数,嵌套调用)MySql的事务使用与示例详解mysql实现事务的提交和回滚实例mysql 锁表锁行语句分享(MySQL事务处理)通过唯一索引S锁与X锁来了解MySQL死锁套路MySQL死锁套路之唯一索引下批量插入顺序不一致由不同的索引更新解决MySQL死锁套路当Mysql行锁遇到复合主键与多列索引详解MySql 知识点之事务、索引、锁原理与用法解析 2023-07-27
mengvlog 阅读 101 次 更新于 2025-09-10 01:16:11 我来答关注问题0
  •  宜美生活妙招 面试官问你:MySQL事务和隔离级别,你该如何回答

    MySQL默认采用自动提交模式,即如果不显式使用START TRANSACTION语句来开始一个事务,那么每个查询都会被当做一个事务自动提交。二、事务隔离级别 事务隔离级别是用来定义事务之间的隔离程度,MySQL支持四种事务隔离级别,它们逐级提供了更高的事务隔离程度,但同时也带来了更高的开销。读未提交(Read Uncommitted...

  •  深空见闻 mysql默认是开启事务的吗

    MySQL默认是没有开启事务的,但其操作模式是auto commit自动提交模式。一、MySQL的默认事务行为 在MySQL中,默认情况下,每个SQL语句都被视为一个独立的事务,并在执行完毕后立即提交。这是由MySQL的autocommit参数控制的,该参数的默认值为1,即开启自动提交模式。在这种模式下,用户无需显式地开始和提交...

  • 事务是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功要不全都失败,这个特性就是事务 注意:mysql数据支持事务,但是要求必须是innoDB存储引擎 解决这个问题: mysql的事务解决这个问题,因为mysql的事务特性,要求这组操作,要不全都成功,要不全都失败,这样就避免了某个操作成功某个操作失败。

  • 而事务则是由一系列数据更改操作组成的整体。如果事务中包含的操作失败或被用户中断,用户可以控制撤销事务中的所有操作,使数据库恢复到事务开始前的状态。事务中的操作要么全部成功完成,要么全部不执行,以此确保数据的完整性。在MySQL数据库中,不同的存储引擎支持的特性有所不同。例如,MyISAM存储引擎并...

  •  翡希信息咨询 mysql之事务执行过程和ACID分析;一文读懂undolog、redolog、binlog刷盘时机和意义

    事务提交:在Redo Log中标记commit状态,表示事务提交成功。如果中途操作失败,可以根据Undo Log进行回滚,确保数据一致性。ACID分析 原子性(Atomic):事务中的操作要么全部成功,要么全部失败。在MySQL中,这通过Undo Log和Redo Log来实现。如果事务失败,可以使用Undo Log进行回滚;如果事务成功,但系统宕机...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部