我用struts写了一个小软件 ,但是 关于 mysql的rollback机制 不太懂, 谁能教教我?

 我来答
wangzhiqing999
推荐于2016-01-28 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3559万
展开全部
MySQL

默认情况下,MySQL采用autocommit模式运行。这意味着,当执行更新表的语句之后,MySQL立刻把更新存储到磁盘中。

事务安全型的存储引擎(如InnoDB, BDB或NDB簇),
使用以下语句禁用autocommit模式:
SET AUTOCOMMIT=0;

使用START TRANSACTION,autocommit仍然被禁用,直到COMMIT或ROLLBACK结束事务为止。然后autocommit模式恢复到原来的状态。

mysql> select * from test_main //
+----+-------+
| id | value |
+----+-------+
| 1 | ONE |
| 2 | TWO |
| 3 | THREE |
+----+-------+
3 rows in set (0.00 sec)

mysql> START TRANSACTION;
-> //
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO test_main VALUES(4, 'FOUR') //
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test_main VALUES(4, 'FOUR') //
ERROR 1062 (23000): Duplicate entry '4' for key 'PRIMARY'

mysql> ROLLBACK//
Query OK, 0 rows affected (0.01 sec)

mysql> select * from test_main //
+----+-------+
| id | value |
+----+-------+
| 1 | ONE |
| 2 | TWO |
| 3 | THREE |
+----+-------+
3 rows in set (0.00 sec)
bingozen
2011-08-23 · 超过10用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:34.1万
展开全部
简单的说 就是几张不同的表 你同时提交,如果前面提交的数据正确,而后面提交的数据错误,
正常来说,前面会提交成功。rollback的作用就是 一定要全部正确才会提交,任何一张错误都会是事物回滚,不再提交。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式