Node.js 如何使用upsert sequelize cli更新现有数据

Node.js 如何使用upsert sequelize cli更新现有数据,node.js,sql-server,sequelize.js,sequelize-cli,Node.js,Sql Server,Sequelize.js,Sequelize Cli,我想使用迁移更新一些数据,我有一个包含以下信息的表: id用户名 1用户1 2用户2 3用户3 4用户4 下列文件: 我做了这个: const db = require('../src/models'); 'use strict'; module.exports = { up: (queryInterface, Sequelize) => { return Promise.all( [ queryInterface.upsert('Users',{us

我想使用迁移更新一些数据,我有一个包含以下信息的表:

id用户名
1用户1
2用户2
3用户3
4用户4

下列文件:

我做了这个:

 const db = require('../src/models');
'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
    return Promise.all(
    [
      queryInterface.upsert('Users',{userName:'User1 Updated'},{userName:'User1 Updated'},{userName:'User1'},db.Users,{}),
      queryInterface.upsert('Users',{userName:'User2 Updated'},{userName:'User2 Updated'},{userName:'User2'},db.Users,{}),
      queryInterface.upsert('Users',{userName:'User3 Updated'},{userName:'User3 Updated'},{userName:'User3'},db.Users,{}),
      queryInterface.upsert('Users',{userName:'User4 Updated'},{userName:'User4 Updated'},{userName:'User4'},db.Users,{}),
    ]
    )
  },

  down: (queryInterface, Sequelize) => {
    ...
  }
};
但是我得到了一个错误:


错误:关键字“WHEN”附近的语法不正确。

想知道用户模型的定义是什么。我也遇到了这个问题,当我在MSSQL的方言查询接口中添加“console.log()”时,我看到的是没有为查询生成“合并搜索条件”。因此,您将得到一个“empty”子句,这是MERGE-INTO语句所需要的:我认为我之所以得到一个空的“MERGE-search条件”,是因为我提供的where子句位于一个字段/列上,而该字段/列不是PK或unique