问题描述
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,还是所有foreignKeys吗?
解决方法
它寻找主键值,就像许多DBMS中的类似SQL命令一样。 所有其他字段可能都相等,但PK旨在将一个记录与另一个记录区分开来是唯一的。