1. ホーム
  2. mysql

[解決済み] Sequelize bulkCreate() が主キーに NULL 値を返す

2022-02-15 14:08:41

質問

mySQLのORMとしてnode, sequelizeを使ってrestを書いています。 私は一括でレコードを作成するためにbulkCreate関数を使用しています。しかし、それは応答で返されます ヌル を主キー値として使用します。

モデル

sequelize.define('category', {
    cat_id:{
        type:DataTypes.INTEGER,
        field:'cat_id',
        primaryKey: true,
        autoIncrement: true,
        unique:true
    },
    cat_name:{
        type: DataTypes.STRING,
        field: 'cat_name',
        defaultValue:null
    }
});

一括作成操作 :

var data = [
        {
            'cat_name':'fashion'
        },
        {
            'cat_name':'food'
        }
    ];

    orm.models.category.bulkCreate(data)
    .then(function(response){
        res.json(response);
    })
    .catch(function(error){
        res.json(error);
    })

レスポンス :

[
  {
    "cat_id": null,
    "cat_name": "fashion",
    "created_at": "2016-01-29T07:39:50.000Z",
    "updated_at": "2016-01-29T07:39:50.000Z"
  },
  {
    "cat_id": null,
    "cat_name": "food",
    "created_at": "2016-01-29T07:39:50.000Z",
    "updated_at": "2016-01-29T07:39:50.000Z"
  }
]

解決方法は?

を設定する必要があります。 returning オプションで指定します。

Model.bulkCreate(values, {returning: true})