最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL的事务陷阱和艺术_MySQL

来源:动视网 责编:小采 时间:2020-11-09 19:52:15
文档

MySQL的事务陷阱和艺术_MySQL

MySQL的事务陷阱和艺术_MySQL:作者在之前的文章 “MySQL事务及为何不能在PHP模仿事务” 里面, 详细说明了事务的优点,并介绍了一些简单的SQL命令,使得应用程序更加健壮。但在web程序员的生命旅程中并没有多少事情是看起来那样简单的。 不能回滚的语句(Stateme
推荐度:
导读MySQL的事务陷阱和艺术_MySQL:作者在之前的文章 “MySQL事务及为何不能在PHP模仿事务” 里面, 详细说明了事务的优点,并介绍了一些简单的SQL命令,使得应用程序更加健壮。但在web程序员的生命旅程中并没有多少事情是看起来那样简单的。 不能回滚的语句(Stateme


保存点(Savepoint)

我们对异常那是爱之深责之切,那么让我们来看看另一个设计优美的部分。保存点(Savepoint)是事务中有效的命名位置。你可以回滚到某个保存点而不影响改点之前的SQL更新。。有点像Photoshop中的历史面板。

最简单的方法,我们一起来看个示例:

START TRANSACTION;

-- 增加 tableA 的记录
INSERT INTO tableA VALUES (1,2,3);

-- 创建保存点 tableAupdated
SAVEPOINT tableAupdated;

-- 增加 tableB 的记录
INSERT INTO tableB VALUES (4,5,6);

-- 反正发生了些什么不愉快的事,要取消对 tableB 所做的更新...
ROLLBACK TO tableAupdated;

-- 这时候提交,就只有 tableA 被更新了
COMMIT;

当然, 也可以设置多个保存点标识符(SAVEPOINT identifiers), 并且在事务中回滚到任意一处。

也可以删除一个保存点,语法如下:

RELEASE SAVEPOINT savepointName;

只要事务提交或者(整个)回滚,那么所有的保存点都会被删除。

事务和保存点的使用非常简单,能有效保护 InnoDB 中重要的数据。你还有什么理由坚持使用 MyISAM 呢,现在MyISAM的效率也不如InnoDB了。

文档

MySQL的事务陷阱和艺术_MySQL

MySQL的事务陷阱和艺术_MySQL:作者在之前的文章 “MySQL事务及为何不能在PHP模仿事务” 里面, 详细说明了事务的优点,并介绍了一些简单的SQL命令,使得应用程序更加健壮。但在web程序员的生命旅程中并没有多少事情是看起来那样简单的。 不能回滚的语句(Stateme
推荐度:
标签: 艺术 mysql 事务
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top