javascript - 如何使用 Sequelize 通过原始查询获取最后插入的 ID?

标签 javascript mysql node.js sequelize.js

在 sequelize.js 中尝试以下原始 MySQL 插入时:

mysql_sequelize.query( 'INSERT IGNORE INTO steamer(steamer_id, prov_id, name, avatar) VALUES(UNHEX(REPLACE(UUID(),\'-\',\'\')), \'' + prov_id + '\', \'' + steamer_name + '\', \'' + steamer_avatar + '\')')
  .then(function (data) {
       console.log('inserted STEAMER data---> ',data);  // no useful info
  });
);

生成的控制台日志如下所示:

inserted STEAMER data--->  [ OkPacket {
    fieldCount: 0,
    affectedRows: 1,
    insertId: 0,
    serverStatus: 2,
    warningCount: 1,
    message: '',
    protocol41: true,
    changedRows: 0 },
  OkPacket {
    fieldCount: 0,
    affectedRows: 1,
    insertId: 0,
    serverStatus: 2,
    warningCount: 1,
    message: '',
    protocol41: true,
    changedRows: 0 } ]

我必须做什么才能获得以下数据的 ID?甚至最后插入的 ID?

最佳答案

您可以通过将 { type: sequelize.QueryTypes.INSERT } 作为选项参数传递来实现此目的。这将使 sequelize 返回插入它。

简单查询示例:

sequelize.query(
    "INSERT INTO clients (name) values ('myClient')",
    { type: sequelize.QueryTypes.INSERT }
).then(function (clientInsertId) {
    console.log(clientInsertId);
});

关于javascript - 如何使用 Sequelize 通过原始查询获取最后插入的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35689402/

相关文章:

javascript - 我可以改进这个 jQuery 代码重复吗?

javascript - 将对象传递给 jQuery 方法

javascript - 无需重新连接数据库的 Ajax 查询

mysql - 如何将 .sql 文件转换为 mysql 数据库中的表

javascript - 如何根据每个客户端动态连接mysql数据库?

node.js - 类型错误 : Cannot read property 'image' of undefined

javascript - 当主列 float 在侧边栏旁边时,将 Bootstrap Popover 置于按钮下方

php - 哪种方法最好始终使用 file_put_contents 写入数据或检查数据是否更改然后更新文件?

php - 衡量性能/优化网站时的有用提示?

javascript - 如何包装返回 Promise 的延迟函数,以便外部函数返回实际值而不是 Promise