Я пытаюсь применить Trasnactions (beginTransaction
, rollback
и commit
. Однако, если запрос на добавление счета-фактуры (первый запрос) выполнен успешно, я хочу обновить сумму поставщика (Второй запрос). Я намеревался напишите неправильный синтаксис во втором запросе, изменив UPDATE
на UPDATEEE
. Я предполагал, что это должно rollback
. Я получил сообщение об ошибке синтаксиса запроса, но счет был добавлен (первый запрос успешно выполнен).
Что такое что я делаю не так?
Invoice.addNewInvoice = function (invoice_data,result){
sql.beginTransaction(function(err){
if (err) { throw err; }
sql.query('INSERT INTO invoice SET ?',invoice_data, function(err,res){
if(err){
sql.rollback(function() {
throw err;
});
}else{
sql.query('UPDATEEEEE supplier SET supplier_amount = supplier_amount + ' + invoice_data.invoice_amount + ' WHERE supplier_id = ' + invoice_data.supplier_id, function(err,res){
if(err){
sql.rollback(function() {
throw err;
});
}
})
sql.commit(function(err) {
if (err) {
sql.rollback(function() {
throw err;
});
}else{
result(null,res);
}
});
}
});
});
}