历史更新mysql节点js

您好我使用节点JS与MYSQL,并试图查看历史更新如何与node-mysql一起工作。 我遇到了一个问题,当我尝试更新表中的ID行时,我想获取该行,使用新的时间戳更新它,然后插入一个ID为2的新行,但没有更新时间戳。

 ID | Owner | app | status | INSERT_DT | UPDATE_DT 1 11 Ok 1 2015-15-20 13:00:21 NULL 

现在当我通过改变状态更新上面的行时,应该会出现

 ID | Owner | app | status | INSERT_DT | UPDATE_DT 1 11 Ok 1 2015-15-20 13:00:21 20-15-20 12:00:12 2 11 Ok 0 2015-15-20 12:00:12 | NULL 

所以我得到这样的行

 getUserPath = (Owner) => new Promise((resolve, reject) => { db.query('SELECT * from path where Owner = ?', Owner, function (error, results, fields) { if (error) { reject('Could not get user path'); } resolve(results[0]); }); }); 

下面的更新是我不知道如何更新整个行。 所以这些data包含了上面所有的信息

 UpdateUserPath = (data) => new Promise((resolve,reject)=>{ data.INSERT_DT = '2015-15-20 12:00:12'; db.query('UPDATE path set data', data , function(err,results,fields){ if(err){ reject('Could not update user path'); }else{ if(results.affectedRows > 0){ //Making the new row data.ID = null; insertNewPath(data); }else{ reject('Could not update user path'); } } }); }); 

更新语句返回给我一个错误,我不知道如何让它工作。 我假设该设置需要我手动让哪些字段更新,但我不想这样做,我希望它一次发生。

你更新语句是错误的。 如果你想更新上面的表格,应该是:

 db.query('UPDATE path set ID=?, Owner=?, app=?, status=?, INSERT_DT=?, UPDATE_DT=?',[data.ID,data.Owner,data.app,data.status,data.insert_dt,data.update_dt] , function(err,results,fields){ ...