Sql server omitNull不处理Sequelize中的primaryKey列

Sql server omitNull不处理Sequelize中的primaryKey列,sql-server,node.js,sequelize.js,Sql Server,Node.js,Sequelize.js,我有一个SQL server数据库,其中有一个表,当添加记录时,该表会自动在每一行中插入guid。此列是表的主键,不需要向其提供值,因为它是自动的 问题是,每次我执行.create({emailAddress:})时,Sequelize都会为此列发送NULLtest@test.com“})调用,该调用会在数据库中导致错误(因为显然不允许使用空值) 我曾尝试在顶层和“调用”层添加omitNull,但这两种方法都不起作用,除非我删除主键,然后它不会发送NULL。因此,Sequelize似乎认为,如果

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

问题是,每次我执行.create({emailAddress:})时,Sequelize都会为此列发送NULLtest@test.com“})调用,该调用会在数据库中导致错误(因为显然不允许使用空值)

我曾尝试在顶层和“调用”层添加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)
})

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

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

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

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

好的,这将发送一个空字符串,该字符串将被数据库中的GUID替换,该GUID将作为一种解决方法完美地工作。似乎仍然很奇怪,没有办法让它什么也不发送,但这只是我的挑剔。非常感谢。好的,这将发送一个空字符串,它将被替换为数据库中的GUID,这将是一个很好的解决方法。似乎仍然很奇怪,没有办法让它什么也不发送,但这只是我的挑剔。非常感谢。