我正在尝试在sequelize中使用findorcreate方法并且它正确地在我的mysql数据库中插入一行,但是我在defaults部分中放置的值没有被插入。
这是我的代码
return userDb
.findOrCreate({
defaults: {
first_name: 'john',
last_name: 'doe',
email: 'test@test.com'
},
where: {
user_id:UserId
}
})
这是调试输出的插入语句
INSERT INTO `user` (`id`,`user_id`,`deleted`,`created_on`) VALUES (DEFAULT,200,'0',NOW());
你可以看到它甚至没有尝试在默认部分插入我有的3个字段。我错过了什么吗?
答案 0 :(得分:2)
您在INSERT
中看到的字段都是Sequelize为Model
/表创建的默认列,因此User
Sequelize Model
可能未定义正常。由于Model
不包含这些列,因此无法应用您在defaults
中指定的字段。
确保您为first_name
last_name
email
中的Sequelize.define()
,User
和Model
定义。
const sequelize = new Sequelize();
const User = sequelize.define(
'user',
{
first_name: {
type: Sequelize.STRING,
},
last_name: {
type: Sequelize.STRING,
},
email: {
type: Sequelize.STRING,
},
}
);