Get last inserted id Sequelize

I'm using Sequelize and I'm trying to get the last inserted ID in raw query.

My query is

.query(Sequelize.Utils.format(["insert into MyTable (field1, field2) values (?,?)", val1, val2])

The query is done perfectly, but the result on success event is null.

Can someone help?

Thanks.


Guys,

after some researches and zillions attempts, I understood how callee object work in sequelizeJs.

please, correct me if my answer is wrong.

the callee object needs this structure

{__factory:{autoIncrementField: 'parameterName'}, parameterName: '' }

in this case "parameterName" is the field that will store the new ID, sequelize looks for __factory.autoIncrementField to set value of last inserted id into property with its value (value of __factory.autoIncrementField).

so, my call to querys method would be

.query(sequelize.Utils.format(tempInsert), {__factory:{autoIncrementField: 'parameterName'}, parameterName: '' }, {raw: true})

this will result in object like that

{ __factory: { autoIncrementField: 'parameterName' }, parameterName: newInserted_ID }

thanks for all, and I hope this can help someone.

Yes your answer is working. Another way would be

var Sequelize = require("sequelize")
var sequelize = new Sequelize('test', 'root', 'root', {dialect: 'mysql'})

var Page = sequelize.define( 'page', {
  type  : {type: Sequelize.STRING(20)},
  order : {type: Sequelize.INTEGER, defaultValue: 1}
},{
  timestamps: false,
  underscored: true
})

Page.__factory = {autoIncrementField: 'id'}
Page.id = ''

sequelize.query('INSERT INTO pages SET `type` = ?, `order` = ?, `topic_version_id` = ?', Page, {raw: false}, ['TEXT', 1, 1] ).success(function(page) {
  console.log(page)
  Page.find(page.id)
    .success(function(result){
      console.log(result)
    })

})