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 }
すべてに感謝します。これが誰かの助けになることを願っています。