NODEJS MYSQL ASYNC 整合事务支持
来源:互联网 发布:修改照片的软件 编辑:程序博客网 时间:2024/05/29 15:50
因为项目中要用到事务,而且还要保证sql语句的顺序执行,所以有了下面的代码。也是用了好多种方法,最后决定有下面的,希望能满足你的需求。
// 加载mysqlvar mysql = require(’./mysqlConn’);// 加载mysql-queues 支持事务var queues = require(‘mysql-queues’);// 加载async 支持顺序执行var async = require(‘async’);
var db_tran = function(){// 获取事务queues(mysql);var trans = mysql.startTransaction();
async.series([ function(insert_cb) { var insert_sql = "INSERT INTO `shop` (`id`, `name`, `address`, `tel`, `fax`, `mail`, `shop_kbn`, `modified_date`, `modified_id`) VALUES ('18', '1212', '1212', '12', '12', '12', '12', '2013-05-28 16:10:15', '0')"; // 执行第一条sql语句 如果出错 直接进入最后的 错误方法 回滚事务 trans.query(insert_sql, function(err, info) { insert_cb(err, info); }) }, function(update_cb_1) { var update_sql_1 = "UPDATE `shop` SET `address`='管理会社 1' WHERE `id`='17'"; // 执行第二条sql语句 如果出错 直接进入最后的 错误方法 回滚事务 trans.query(update_sql_1, function(err, info) { update_cb_1(err, info); }) }, function(update_cb_2) { var update_sql_2 = "UPDATE `shop` SET `address`='管理会社 2' WHERE `id`='16'"; // 执行第三条sql语句 如果出错 直接进入最后的 错误方法 回滚事务 trans.query(update_sql_2, function(err, info) { update_cb_2(err, info); }) }], function(err, results) {if (err) {console.log("rollback");// 出错的场合 回滚trans.rollback();} else {// 没有错误的场合 提交事务trans.commit();}});// 执行这个事务trans.execute();
}
原文链接:http://cnodejs.org/topic/51a83cf0555d34c678272214
0 0
- NODEJS MYSQL ASYNC 整合事务支持
- 使nodejs服务端支持async/await语法
- nodejs + async
- 【nodejs】async
- 让mysql支持事务
- mysql支持事务
- 让mysql支持事务
- MySql支持事务
- 事务的概念和MySQL事务支持
- 事务的概念和MySQL事务支持
- Mysql对事务的支持
- nodejs Async 详解
- nodejs Async 详解
- nodejs Async 详解
- nodejs Async 详解
- nodejs Async 详解
- Nodejs 异步框架async
- nodejs async 库使用
- 关于zip对文本进行压缩和解压
- 蓝牙4.0入门(2)开始程序编写(一)编写第一个亮灯程序
- ORACLE-排序技巧ROW_NUM,ROW_NUMBER,RANK,DENSE_RANK,
- 求二叉树的先序遍历
- web.xml配置加载顺序
- NODEJS MYSQL ASYNC 整合事务支持
- java反射机制—— 利用反射机制实例化对象
- 使用zlib库解压*.zip文件
- linux音频alsa驱动分析之三 解码器
- 开源ETL工具kettle系列之动态转换
- JS和JSP的区别
- AIX错误码
- 基于图像的室内装修风格分类系统(四)---分类器
- HDU 1612 The Blocks Problem 模拟 不会PE代码