我在Postgresql数据库上使用Sequelize并运行以下查询:
let idUser = req.user.idUser;
db.table.findOrCreate( { where : { idUser : idUser }}).spread(function (data, created) {
res.json({
value : data.birthday
});
});
鉴于我正在使用findOrCreate,我希望第一次在新用户上运行它时,它会尝试在表中找到一个值,找不到它并创建一行。任何后续运行的时间,它都会找到并使用该行。
但是, 65%的时间为同一个用户创建两行!我在创建行时存储,两行的值通常在几毫秒之内。什么可能导致这个?为什么它有时只发生?
我的理解是,当使用findOrCreate时,这是不可能的。我感谢所有的帮助!谢谢
此外,SQL中与findOrCreate相同的是什么?