Get last inserted id Sequelize
Ich bin mit Sequelize und ich versuche, die Letzte eingefügte ID im raw-query.
Meine Abfrage ist
.query(Sequelize.Utils.format(["insert into MyTable (field1, field2) values (?,?)", val1, val2])
Die Abfrage ist perfekt gemacht, aber das Ergebnis auf den Erfolg der Veranstaltung ist null.
Kann jemand helfen?
Dank.
Jungs,
nach einigen nachforschungen und unzählige versuche, habe ich verstanden, wie aufgerufene Objekt arbeiten in sequelizeJs.
bitte, korrigieren Sie mich, wenn meine Antwort falsch ist.
das aufgerufene Objekt muss diese Struktur
{__factory:{autoIncrementField: 'parameterName'}, parameterName: '' }
in diesem Fall "parameterName" ist das Feld, das mit speichern wird die neue ID, sequelize sieht für __Fabrik.autoIncrementField zu setzen mit dem Wert der zuletzt eingefügten id-Eigenschaft mit dem Wert (Wert von __Fabrik.autoIncrementField).
also, mein Aufruf zum Problemfall Methode wäre
.query(sequelize.Utils.format(tempInsert), {__factory:{autoIncrementField: 'parameterName'}, parameterName: '' }, {raw: true})
dadurch wird im Objekt-wie
{ __factory: { autoIncrementField: 'parameterName' }, parameterName: newInserted_ID }
Dank für alle, und ich hoffe, es kann jemand helfen.
InformationsquelleAutor ops.rio | 2013-05-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, deine Antwort ist zu arbeiten. Ein anderer Weg wäre
raw: false
, aber deine Abfrage ist ein raw-query. Bin ich der Zweck derraw
Eigenschaft? Können Sie erklären, warum Sie das getan hat?so weit ich mich erinnere,
raw: true
nicht anzeigen Ergebnis in das Modell.Das ist sehr nützlich zu wissen! Danke
Gerade in Sequeulize. Ich mein Modell mit einer Kolumne: `` id: { type: DataTypes.INTEGER, autoIncrement: true primaryKey: true }`` Doch der einzige Weg, bekomme ich wieder die eingefügte ID ist mit Ihrer Methode oben. Dies scheint seltsam,? Gibt es einen Grund, dies nicht dokumentiert überall sonst?
Wollte nur erwähnen, dass jetzt, ich bin in der Lage zu bekommen
id
nachsave
odercreate
wennid
Feld ist definiert alsid: {type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true}
. Der wichtigste Teil istautoIncrement
, wenn Sie es entfernen, kommen Sie nicht zurückid
.InformationsquelleAutor Kamrul
Müssen Sie autoIncrement-Eigenschaft im Modell-definition.
Dann können Sie auf die Letzte eingefügte id mit der Eigenschaft im model-definition.
InformationsquelleAutor MiraGe