我正在使用 Sequelize,并且试图在原始查询中获取最后插入的 ID。
我的查询是
.query(Sequelize.Utils.format(["insert into MyTable (field1, field2) values (?,?)", val1, val2])
查询已完美完成,但成功事件的结果为null。
有人可以帮忙吗?
谢谢。
经过一些研究和无数次尝试,我了解了被调用对象在 sequelizeJs 中是如何工作的。
请纠正我,如果我的答案是错误的。
被调用对象需要这个结构
{__factory:{autoIncrementField: 'parameterName'}, parameterName: '' }
在这种情况下,“parameterName”是将存储新 ID 的字段,sequelize 查找 __factory.autoIncrementField 以将最后插入的 id 的值设置为属性及其值(__factory.autoIncrementField 的值)。
所以,我对查询方法的调用是
.query(sequelize.Utils.format(tempInsert), {__factory:{autoIncrementField: 'parameterName'}, parameterName: '' }, {raw: true})
这将导致这样的对象
{ __factory: { autoIncrementField: 'parameterName' }, parameterName: newInserted_ID }
谢谢大家,我希望这可以帮助别人。