omitNull 不适用于 Sequelize 中的 primaryKey 列



我有一个SQL服务器数据库,其中包含一个表,当添加记录时,该表会在每行中自动插入一个guid。此列是表的主键,永远不需要向其提供值,因为它是自动的。

麻烦的是,每次我执行 .create({emailAddress:"test@test.com"}( 调用时,Sequelize 都会为此列发送 NULL,这会导致数据库中出现错误(因为显然不允许空值(。

我尝试在顶层和"调用"级别添加 omitNull,但它们都不起作用,除非我删除主键,然后它不会发送 NULL。因此,Sequelize似乎认为,如果某些东西是主键,那么它必须发送一个值,而不了解SQL SERVER数据库将处理该值的插入。

有人知道解决方法吗?

//型

module.exports = function (sequelize, DataTypes) {
const Player = sequelize.define('Player', {
playerId: {
primaryKey: true,
type: DataTypes.STRING
},
emailAddress: {
type: DataTypes.STRING 
}
}, {
timestamps: false
});
return Player;
};

创建一行

let newPlayer = {
emailAddress:'test@test.com'
}
Player.create(newPlayer, {omitNull:true}).then(function(player){
console.log("player", player)
}).catch(function(error){
console.log("error", error)
})

添加defaultValueallowNull应该可以完成这项工作

playerId: {
primaryKey: true,
defaultValue: '',
allowNull: false,
}

最新更新