Невозможно выполнить массовую загрузку с помощью sequelize - PullRequest
0 голосов
/ 17 апреля 2020

Я использую sequelize (5.21.6) с sqlite3 (^ 4.1.1).

У меня есть две модели A и B, между которыми существует отношение многих ко многим.

Я хочу выполнить массовую вставку или обновление в сводную таблицу.

Для достижения этой цели я создал третью модель сводной таблицы, назовем ее AB.

Итак, вот как я пытаюсь объединить данные в сводную таблицу.

db.AB.bulkCreate([array of values], {
    updateOnDuplicate: ['aId', 'bId', 'updatedAt']
});

Ошибка, которую я получаю:

{ Error: SQLITE_ERROR: near ")": syntax error
   [0]      errno: 1,
   [0]      code: 'SQLITE_ERROR', 
   [0]      sql: INSERT INTO `AB` (`id`,`aId`,`bId`,`createdAt`,`updatedAt`) VALUES (19,1,1,'example',\'2020-04-15 15:18:59.000 +00:00\',\'2030-04-15 15:18:59.000 +00:00\'),(20,2,2,\'2030-04-15 15:19:49.000 +00:00\',\'2030-04-15 15:19:49.000 +00:00\') ON CONFLICT () DO UPDATE SET `aId`=EXCLUDED.`aId`, `bId`=EXCLUDED.`bId`,`updatedAt`=EXCLUDED.`updatedAt`;'
}

Определение моей модели AB:

'use strict';
 module.exports = (sequelize, DataTypes) => {
   const AB = sequelize.define('AB', {
    id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        allowNull: false,
        autoIncrement: true
    },
    aId: DataTypes.INTEGER,
    bId: DataTypes.INTEGER
  }, {});
  AB.associate = function (models) {
    // associations can be defined here
    AB.belongsTo(models.A, { foreignKey: 'aId' });
    AB.belongsTo(models.B, { foreignKey: 'bId' });
  };
  return AB;
};
...