在 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/