0
我想執行node-mysql中的事務(通過執行查詢START TRANSACTION,ROLLBACK,COMMIT)。我有這段代碼:事務回滾後不執行查詢
conn.query("START TRANSACTION");
conn.query("INSERT INTO users (id, name, age) VALUES (1, 'Mat', '24')", function(e){
if (e){
conn.query("ROLLBACK", callback);
}
else{
conn.query("COMMIT", callback);
}
});
conn.query("INSERT INTO users (name, age) VALUES ('Mat', '24')", function(e, r){
console.log(e); // null
console.log(r); // {fieldCount: 0, affectedRows: 1, insertId: 2, serverStatus: 3, warningCount: 0, message: ''}
});
要測試回滾的情況下,我有意將id設置爲1,這會導致索引重複錯誤。事務回滾,但問題在於事務外部的第二次插入未執行。沒有錯誤記錄,並且 - 對我來說很奇怪 - 當我在第二次插入之後選擇整個表格時,結果中有新的一行。但在另一個連接中它消失了。所以它看起來像在連接結束時新創建的行被刪除。交易提交時不會出現問題。