- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在向数据库中输入大量数据,并且正在使用此模型将 updateOnDuplicate 选项应用于 bulkCreate。所以我无法在这里验证理智。我的问题是,因为我有一个唯一值,它也可用于 updateOnDuplicate 条件,或者只是用于检查重复项的主键。
问题是我在 bulkCreate 表中的主键是 id
,它是自动增量的。我的模型中有多个唯一值,并且不希望仅通过检查主键来更新任何内容。它是否考虑了所有唯一性,还是我必须手动进行?
customer_id: {
type: DataTypes.BIGINT,
allowNull: false,
unique: true
},
shop_id: {
type: DataTypes.INTEGER(10).UNSIGNED,
allowNull: false,
unique: true,
references: {
model: 'shop',
key: 'id'
}
},
email: {
type: DataTypes.STRING(255),
allowNull: false
},
others: {
type: DataTypes.STRING(255),
allowNull: false
},{
timestamps: false,
createdAt: false,
updatedAt: false,
tableName: 'customers'
}
最佳答案
根据我的观点,bulkCreate 将仅作用于 id(不应考虑唯一约束)。
因此,如果您尝试使用 bulkCreate 插入重复值(在具有唯一值约束的列中),那么它将抛出错误并且不会插入任何记录。因此,在这种情况下,您必须手动进行检查。
所以我的建议是先检查唯一值,然后再使用 bulkCreate。
或者
遍历记录并为每条记录调用 findOrCreate
方法,并将唯一值列放在 where 条件中。这将比 bulkCreate 花费更多时间,但更具体。
Model.findOrCreate({
where: {
customer_id: cust_val,
shop_id: shop_val
}
}).spread(function(record, created){
if (created){
console.log('New Record Created');
}
});
关于mysql - Sequelize bulkCreate : updateOnDuplicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44538089/
你好,我想用bulkCreate ex 插入数据: [ { "typeId": 5, "devEui": "0094E796CBFCFEF9", "application_name": "Pressu
我正在向数据库中输入大量数据,并且正在使用此模型将 updateOnDuplicate 选项应用于 bulkCreate。所以我无法在这里验证理智。我的问题是,因为我有一个唯一值,它也可用于 upda
我知道 Sequelize 不支持 postgresQL 的 updateOnDuplicate sequelize doc ,那么有解决办法吗? 是否可以通过“SQL命令”来实现。 最佳答案 新的
我是一名优秀的程序员,十分优秀!