本次代碼就講事務的應用,主要就是看下怎麼用,所以代碼沒有精簡。
let mysql = require('mysql');
let connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'123456',
database:'cms'
})
connection.connect();
//開啓事務
connection.beginTransaction((err) => {
if(err){
connection.rollback(err=>{throw err});//如果有錯誤則事務回滾
throw err;
}else{
connection.query(`update account set balance=balance - 10 where id = 1`,(err) => {
if(err){
connection.rollback(err=>{throw err});//如果有錯誤則事務回滾
throw err;
}else{
connection.query(`update account set balance=balance - 10 where id = 2`,(err) => {
if(err){
connection.rollback(err=>{throw err});//如果有錯誤則事務回滾
throw err;
}else{
connection.commit(err=>{throw err});//如果成功則提交
}
})
}
})
}
})