Sequelize bulkCreate() 返回主键的 NULL 值

新手上路,请多包涵

我正在使用 node 编写 rest,sequelize 作为 mySQL 的 ORM。我正在使用 bulkCreate 函数批量创建记录。但作为响应,它为主键值返回 null

模型

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"
  }
]

原文由 Sunil Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 718
2 个回答

您应该设置 returning 选项:

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

原文由 Adam 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 MySQL 中测试:

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

原文由 Thiago Silva Ferreira 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题