【发布时间】:2019-02-10 13:22:20
【问题描述】:
我有一个带有表的 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)
})
【问题讨论】:
标签: sql-server node.js sequelize.js