Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql upsert()如何在多个键上工作?[续集]_Mysql_Node.js_Sequelize.js_Upsert - Fatal编程技术网

Mysql upsert()如何在多个键上工作?[续集]

Mysql upsert()如何在多个键上工作?[续集],mysql,node.js,sequelize.js,upsert,Mysql,Node.js,Sequelize.js,Upsert,假设我有一个模型: const Player = db.define('player', { // The primary key of the table. playerId: { type: DataTypes.INTEGER(11), primaryKey: true, }, playerName: DataTypes.STRING(11), teamId: { type: Sequelize.STRING(32), allowNul

假设我有一个模型:

const Player = db.define('player', {
  // The primary key of the table.
  playerId: {
    type: DataTypes.INTEGER(11),
    primaryKey: true,
  },

  playerName: DataTypes.STRING(11),

  teamId: {
    type: Sequelize.STRING(32),
    allowNull: false,
    references: {
      model: 'team',
      key: 'teamId',
    }
  },

  managerId: {
    type: Sequelize.STRING(32),
    allowNull: true,
    references: {
      model: 'manager',
      key: 'managerId',
    }
  },

});
如果我这样做

Player.upsert(
  {
    teamId: p.teamId,
    managerId: p.managerId,
    playerName: p.name
  }
)
是否将创建一个新玩家,或者更新具有相同
teamId
managerId
的现有玩家?

如何知道
upsert
查找哪些值以检查条目是否已存在?它是否只查找primaryKey,所有的foreignkey?

它查找主键值,就像许多DBMS中类似的SQL命令一样。 所有其他字段可能相等,但PK被设计为唯一的,以区分一条记录和另一条记录