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

时间:2024-01-21 18:42:26 

什么是事务?

事务是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功要不全都失败,这个特性就是事务

注意: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,事务
0
投稿

猜你喜欢

  • Firefox的默认样式表

    2008-05-09 12:06:00
  • Python OpenCV超详细讲解基本功能

    2021-04-26 11:47:36
  • python 字符串的驻留机制及优缺点

    2022-11-16 10:07:37
  • 数字人组件反写[asp组件开发实例5]

    2009-06-09 13:23:00
  • Pycharm安装第三方库的超详细步骤

    2023-06-08 14:35:07
  • python Event事件、进程池与线程池、协程解析

    2023-09-06 00:39:19
  • Mysql存储过程和函数区别介绍

    2024-01-25 00:40:35
  • pytorch 预训练模型读取修改相关参数的填坑问题

    2021-11-07 01:08:36
  • go语言获取系统盘符的方法

    2024-05-22 10:19:47
  • 封装 Python 时间处理库创建自己的TimeUtil类示例

    2023-01-15 00:45:56
  • ASP用JAVASCRIPT脚本实现分页的办法

    2007-10-30 13:18:00
  • Python深度学习TensorFlow神经网络基础概括

    2022-08-13 02:57:18
  • H1标签的定义

    2008-07-29 12:43:00
  • 使用 Python 玩转 GitHub 的贡献板(推荐)

    2021-10-10 01:12:11
  • python3 发送任意文件邮件的实例

    2023-12-31 15:54:42
  • 详解常用查找数据结构及算法(Python实现)

    2023-02-27 02:03:21
  • python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例

    2023-08-29 03:43:39
  • 使用tensorflow实现矩阵分解方式

    2022-04-17 17:01:17
  • PHP之mysql位运算案例讲解

    2023-06-13 06:16:19
  • pandas.DataFrame的for循环迭代的实现

    2023-07-07 22:10:28
  • asp之家 网络编程 m.aspxhome.com