【问题标题】:Historical updates mysql node js历史更新mysql节点js
【发布时间】:2018-05-01 17:06:20
【问题描述】:

您好,我正在将 node 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');
            }
        }
    });
});

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

【问题讨论】:

    标签: mysql node.js promise


    【解决方案1】:

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

    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){ ...
    

    【讨论】:

    • 但是在设置时没有什么叫做数据,我认为mysql不理解我要设置的内容。
    • 我其实知道上面的说法,只是想有没有更简单的方法。
    猜你喜欢
    • 2021-12-28
    • 2021-10-18
    • 1970-01-01
    • 2019-10-13
    • 2016-12-06
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 2016-01-02
    相关资源
    最近更新 更多