Mysql事务

本文详细介绍了如何在MySQL中使用事务操作InnoDB表,包括启动事务、更新数据、提交事务等步骤,并通过示例展示了如何在InnoDB表上进行复杂的事务处理。此外,还介绍了如何将现有表修改为InnoDB引擎以及使用savepoint进行事务回滚。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、谁可以使用

只有InnoDB /BDB 的之类的transaction_safe table才能支持。

默认的engine MyISAM 是不支持事务的,show engine可以看到支持的和默认的engine。可以在[mysqld]加入: default_storage_engine=InnoDB;  InnoDB就是建立表的默认引擎

建立InnoDB :Create table .... type=InnoDB; Alter table table_name type=InnoDB;(如何查看已有表的类型: show create table table_name)

这样我们就可以在InnoDB 表上进行事务操作了!

2、如何使用

启动事务的方法:

认为分为两种:

1、begin rollback,commit .当然有的人用begin /begin work .推荐用START TRANSACTION SQL-99标准启动一个事务。

    start transaction

update from account set money=money-100 where name='a';

update from account set money=money+100 where name='b';

commit

解释: 这样start transaction 手动开启事务,commit手动关闭事务。

2、默认的时候autocommit=1 自动提交是开启的,所以你可以理解为每条语句一输入到mysqlcommit了。当你 set autocommit=0 时候,你可以这样:

update from account set money=money-100 where name='a';

update from account set money=money+100 where name='b';

commit

// 默认都不提交,只有手动键入commit时候才上述都提交。

3.把表修改成InnoDB

alter table person engine=INNODB

4.savepoint说明

 savepoint要和事务一起使用,当开启了一个事务后savepoint才会起效

例子  begin;                               //事务开始

         savepoint test;                  //savepoint保存点

          ..............                          //具体业务    

         rollback to test;                 //返回保存点

         commit;                            //提交事务  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值