sequelize Field '*xxxx*' doesn't have a default value错误解决

在Node.js使用Sequelize ORM框架时,尝试向数据库插入数据遇到Field 'id' doesn't have a default value错误。文章详细解析了在表定义中正确设置主键自增属性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在node.js平台下用sequelize作为ORM框架,向数据库中插入数据时报错:Field 'id' doesn't have a default value,我的表定义为:

const Task = sequelize.define('task',{
	id:{
		type:Sequelize.BIGINT(10),
		primaryKey:true,
		allowNull:false,
		autoIncrement:true
	},
	provincecode:Sequelize.STRING(255),
	testmodules:Sequelize.STRING(255),
	triggerTime:Sequelize.STRING(255)
},{
	timestamps:false,
    //sequelize自动将表名生成为复数形式,freezeTableName为true时不改变表名
    freezeTableName: true
});

其中id字段为表的主键,并且设置了autoIncrement:true,由于之前我是用SpringBoot搭建后台的,按照我的理解,在调用create方法新增数据时,主键会自动自增,但是运行时却报错,Field 'id' doesn't have a default value ,并没有自增,但是想到自增还没到数据库那块,后台怎么知道现在数据库的id现在自增到多少了,所以想到创建表的时候也要将id字段设置自增属性,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值