mysql中transaction的实现

本文介绍了如何配置MySQL的InnoDB存储引擎,包括设置数据文件、缓冲池大小、日志文件等,并展示了创建InnoDB表的过程以及利用事务进行数据操作的示例。
摘要由CSDN通过智能技术生成
transaction在数据库编程中是一个重要的概念,这样做可以控制对数据库操作的事务提交。
但是要想在程序中实现事务,要求数据库本身支持事务。
现在的关系型数据库,我们日常使用的mysql,oracle等等都支持事务,有的是安装后直接就支持,有的需要做一些设置。这里我就自己的经历总结了一下如何设置以及设置的步骤:
进入mysql
mysql> select * from tester;
+----+--------+--------------+--------+-------+--------+
| ID | name   | address      | salary | grade | sex    |
+----+--------+--------------+--------+-------+--------+
|  1 | jason  | shenzhen     |   4500 |     6 | male   |
|  2 | linkle | zhuhai       |   4000 |     5 | female |
|  3 | leo    | zhuhai       |   3000 |     4 | male   |
|  5 | steven | zhuhai_jinan |   5600 |     7 | male   |
|  6 | jacky  | zhuhai       |   4000 |     5 | male   |
+----+--------+--------------+--------+-------+--------+
5 rows in set (0.00 sec)
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into tester values(7,'jack','HongKong',8000,10,'male');
Query OK, 1 row affected (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select * from tester;
+----+--------+--------------+--------+-------+--------+
| ID | name   | address      | salary | grade | sex    |
+----+--------+--------------+--------+-------+--------+
|  1 | jason  | shenzhen     |   4500 |     6 | male   |
|  2 | linkle | zhuhai       |   4000 |     5 | female |
|  3 | leo    | zhuhai       |   3000 |     4 | male   |
|  5 | steven | zhuhai_jinan |   5600 |     7 | male   |
|  6 | jacky  | zhuhai       |   4000 |     5 | male   |
|  7 | jack   | HongKong     |   8000 |    10 | male   |
+----+--------+--------------+--------+-------+--------+
6 rows in set (0.00 sec)
 
按照上面的步骤rollback没有生效,即便我设置了autocommit=0。By the way,如果SET AUTOCOMMIT=0;也就是关闭了自动提交,那么任何commit或rollback语句都可以触发事务提交;如果SET AUTOCOMMIT=1;也就是开启了自动提交(默认值),那么必须要以begin或者START TRANSACTION声明事务的开始,然后再以commit或rollback语句都可以触发事务提交。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值