mysql有自带回滚功能吗?

 我来答
匿名用户
2013-06-27
展开全部

默认情况下,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)
觉hadoop
推荐于2017-11-25 · TA获得超过285个赞
知道小有建树答主
回答量:63
采纳率:0%
帮助的人:77.1万
展开全部
你指的是事务回滚吗,mysql 的innodb和ndb引擎支持事务,默认事务自动提交,
使用事务回滚需要先关闭自动提交,set autocommit=off,这个是session级别的设置,每次重连需要重新设置

之后你就可以正常使用事务回滚了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式