Sequelize bulkcreate возвращает нулевой первичный ключ - PullRequest
0 голосов
/ 30 апреля 2020

Я использую sequelize версии 5.8.6 с mysql. При попытке массового создания с помощью ignoreDuplicates он возвращает нулевое значение для первичного ключа для 15 записей из 50.

    const detailsArr = [{
        uid: 1, name: 'test1', phone: '123456'
    },
    {
        uid: 2, name: 'test2', phone: '123456'
    },
    {
        uid: 3, name: 'test3', phone: '123456'
    }];
        let detailsCreate = await details_staging_tbl.bulkCreate(detailsArr, {
          returning: true,
          ignoreDuplicates: true
        });

Тогда это моя схема

const details_staging_tbl = sequelize.define(
  "details_staging_tbl", {
    id: {
      type: DataTypes.INTEGER(11).UNSIGNED,
      allowNull: false,
      primaryKey: true,
      autoIncrement: true,
      unique: true
    },
    uid: {
      type: DataTypes.INTEGER(11).UNSIGNED,
      allowNull: false,
      unique: true
    },
    name: {
      type: DataTypes.STRING(50)
    },
    phone: {
      type: DataTypes.STRING(50)
    },
  }, {
    createdAt: 'created_at',
    updatedAt: 'updated_at',
    tableName: "details_staging_tbl",
    indexes: [{
      fields: ["uid", "id"]
    }]
  }
);

Здесь я делаю с 3 записи, но в деталяхСоздать ответ я получаю только 2 идентификатора.

    [{
       id: 1, uid: 1, name: 'test1', phone: '123456'
    },
    {
       id: 2, uid: 2, name: 'test2', phone: '123456'
    },
    {
       id: null, uid: 3, name: 'test3', phone: '123456'
    }]

Я пытался updateOnDuplicate: ["uid"] также. Но ничего не случилось. Та же проблема поднята. Кто-нибудь, пожалуйста, направьте меня, чтобы решить эту проблему. Заранее спасибо.

...