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被设计为唯一的,以区分一条记录和另一条记录