Я использую 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"] также. Но ничего не случилось. Та же проблема поднята. Кто-нибудь, пожалуйста, направьте меня, чтобы решить эту проблему. Заранее спасибо.