mysql xdevapi nodejs:返回插入的行auto_increment id

Posted

技术标签:

【中文标题】mysql xdevapi nodejs:返回插入的行auto_increment id【英文标题】:mysql xdevapi nodejs: returning the inserted row auto_increment id 【发布时间】:2019-12-29 00:47:07 【问题描述】:

我需要知道在 nodejs 中在 mysql 上使用 xdevapi 插入语句后的主键 auto_increment 值。

我的代码是:

sqlQueries.getDBConnection(con =>
    (function inner(con) 
        var query = "INSERT INTO users (name) VALUES ('test')";
        var executeSql = con.sql(query).execute();
        con.close();
        con.done();
        return executeSql;
    (con)).then(function (res) 
        /***********/
        doSomethingWithTheId(id);
        /***********/
        con.close();
        con.done();
    ).catch(e => 
        cl(e);
    )
);

但我不明白如何获取 id 以在 doSomethingWIthTheId() 函数中使用它。

我尝试 console.log(result) 但似乎我得到了一系列方法,但我不知道如何获得我需要的信息。

【问题讨论】:

【参考方案1】:

您可以执行以下操作:

sqlQueries.getDBConnection(con =>
    (function inner(con) 
        var query = "INSERT INTO users (name) VALUES ('test')";
        var executeSql = con.sql(query).execute();
        return executeSql;
    (con)).then(function (res) 
        var query = "SELECT LAST_INSERT_ID();";
        var id = con.sql(query).execute();
        /***********/
        doSomethingWithTheId(id);
        /***********/
        con.close();
        con.done();
    ).catch(e => 
        cl(e);
    )
);

查看answer了解更多详情。

【讨论】:

【参考方案2】:

你可以试试这个吗:

sqlQueries.getDBConnection(con => 
    var query = "INSERT INTO users (name) VALUES ('test')";
    var executeSql = con.sql(query).execute();
    executeSql.then(function(result) 
        let id = result.getAutoIncrementValue();
        doSomethingWithTheId(id);
    ).catch(function(err) 
        con.close();
        con.done();
    )
);

查看更多详情:

https://dev.mysql.com/doc/dev/connector-nodejs/8.0/module-Result.html https://dev.mysql.com/doc/dev/connector-nodejs/8.0/module-SqlExecute.html

【讨论】:

以上是关于mysql xdevapi nodejs:返回插入的行auto_increment id的主要内容,如果未能解决你的问题,请参考以下文章

使用 SSL 和 X 协议的 NodeJS mysql/xdevapi '访问被拒绝'

MySQL XDevAPI 如何返回成功状态

mysql-xdevapi getCollections 承诺返回值

MySQLx 尝试解析表达式时出错(Nodejs)

如何在 C# 中使用 mysql xdevapi 设置 DateTime

使用 Mysql xdevapi