简单的MySql事务使用方法

//mysql事务测试
const mysqlUtil = require('./mysql/mysql-util');

//开启事务
function tranOpen(conn) {
    return new Promise((resolve, reject) => {
        conn.beginTransaction(err => {
            if (err) {
                reject(err);
            } else {
                resolve();
            }
        });
    });
}
//关闭事务
function tranShut(conn) {
    return new Promise((resolve, reject) => {
        conn.commit(err => {
            if (err) {
                reject(err);
            } else {
                resolve();
            }
        });
    });
}

router.get('/', async function (req, res, next) {
    let conn = await mysqlUtil();
    let sqlStr = 'select * from music_info ';
    let sqlParam = [];
    // 开启事务
    await tranOpen(conn);
    // 开始查询任务
    let result1 = await new Promise((resolve, reject) => {
        conn.query(sqlStr, sqlParam, (err, ret) => {
            //如果错误,回滚直到碰到beginTransaction
            if (err) {
                return conn.rollback(() => {
                    resolve(err);
                });
            }
            resolve(ret);
        })
    });
    console.log(result1);
    // 关闭事务
    await tranShut(conn);
    conn.release();
    res.send();
});
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • “求求你了,能不能别看了?睡觉行不行?” 我上眼皮磕碰下眼皮,以一双近视带散光还有些老花的眼睛,瞅着面前这个十二岁...
    矮纸斜行闲作文阅读 3,619评论 0 0
  • 作为家长,谁都不想自己的催促给孩子添堵,都想能包容理解孩子,温柔的说“孩子,你慢慢来”。可是有些时候,我们还是不得...
    啄米乐阅读 3,868评论 0 1
  • 近来忽然发现盘中餐的花样越发多了,辣咸酸甜各有自己一般风采,其中堂吃又是盖浇为多,以浓口重味弥舌思之空虚。 开始每...
    文君1阅读 4,406评论 33 20
  • 过去骄人的成绩固然让自己骄傲自豪,可是一直沉迷在过去的光环下,你又如何能够成长而有所成就呢? 01 闲来无事的时候...
    芦荟柚子阅读 2,915评论 0 4

友情链接更多精彩内容