gpt4 book ai didi

mysql - 我如何使用 sequelize findorcreate defaults

转载 作者:行者123 更新时间:2023-11-29 06:07:13 25 4
gpt4 key购买 nike

我正在尝试在 sequelize 中使用 findorcreate 方法,它在我的 mysql 数据库中正确地插入了一行,但是我在默认部分中输入的值没有被插入。

这是我的代码

return userDb
.findOrCreate({
defaults: {
first_name: 'john',
last_name: 'doe',
email: 'test@test.com'
},
where: {
user_id:UserId
}
})

这里是调试输出的insert语句

INSERT INTO `user` (`id`,`user_id`,`deleted`,`created_on`) VALUES (DEFAULT,200,'0',NOW());

如您所见,它甚至没有尝试插入我在默认部分中拥有的 3 个字段。我错过了什么吗?

最佳答案

您在 INSERT 中看到的字段都是 Sequelize 为 Model/table 创建的默认列,很可能是 User Sequelize Model 未正确定义。因为 Model 不包含这些列,所以无法应用您在 defaults 中指定的字段。

确保在 Sequelize.define() 中定义了 first_namelast_nameemail你的用户 模型

const sequelize = new Sequelize();
const User = sequelize.define(
'user',
{
first_name: {
type: Sequelize.STRING,
},
last_name: {
type: Sequelize.STRING,
},
email: {
type: Sequelize.STRING,
},
}
);

关于mysql - 我如何使用 sequelize findorcreate defaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40751031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com