0
我做一個簡單的UPDATE SQL查詢到使用的NodeJS數據庫,如下圖所示:UPDATE SQL查詢返回誤導響應
conn.query("UPDATE room SET `join_id`=? WHERE `id`=?", [join, cfid], function (e, r) {
console.log(e, r);
//e null; r object;
});
從查詢的響應r
返回此:
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 34,
warningCount: 0,
message: '(Rows matched: 1 Changed: 1 Warnings: 0',
protocol41: true,
changedRows: 1
}
然而,在OKPacket
響應之後,我發現數據庫中沒有任何更改,因此我的其他代碼出現故障。我花了幾個小時研究這個問題,發現只是兩年前的一個問題,這是沒有得出結論:here
您是否打開了交易記錄? – Dave
什麼是交易? – Monstrum
如果您對必須全部成功或全部失敗的數據庫進行了若干更改,則首先啓動事務。如果在某個時候出現故障,交易將「回滾」以避免不一致。如果一切順利,您的交易「承諾」保存更改。請參閱[START TRANSACTION,COMMIT和ROLLBACK語法](http://dev.mysql.com/doc/refman/5.7/en/commit.html) – Dave