当前位置:  开发笔记 > 后端 > 正文

在Web服务中实际使用MySQL保存点?

如何解决《在Web服务中实际使用MySQL保存点?》经验,为你挑选了0个好方法。

有没有人有经验可以使用MySQL 保存点(直接或通过ORM)共享,特别是在非平凡的Web服务中?你在哪里实际使用过它们?它们是否足够可靠(假设您愿意运行相当新版本的MySQL)或过于尖端或昂贵?

最后,是否有人有类似以下用例的经验并且您是否使用了保存点?假设某个特定工作单元的要点是在一个Orders表中添加一行(或者其他什么,当然不必与订单相关)并OrdersAuditInfo在同一事务中更新表.必要时Orders尽可能更新,但OrdersAuditInfo表不是必需的(例如,只需将错误记录到文件中,但继续整个事务处理).在低级别它可能看起来像这样(警告,伪SQL跟随):

BEGIN;

INSERT INTO Orders(...) VALUES (...);
/* Do stuff outside of SQL here; if there are problems, do a
 ROLLBACK and report an error (i.e., Order is invalid in this
 case anyway). */

SAVEPOINT InsertAudit;
INSERT INTO OrdersAudit(...) VALUES(...);
/* If the INSERT fails, log an error to a log file somewhere and do: */
ROLLBACK TO SAVEPOINT InsertAudit;

/* Always want to commit the INSERT INTO Orders: */
COMMIT;

但即使在这里也许会有一个更好(或至少更常见)的习语?可以OrdersAuditInfo在一个完全不同的事务中执行插入,但是保证除非最终实际工作之外没有写入OrdersAuditInfo表,这将是很好的.COMMIT

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有