使用Sequelize创建两张表时报错“仅允许一个自增字段”求助
解决 Sequelize 报错 "Invalid Instance definition. Only one autoincrement field allowed"
错误原因分析
- 语法结构不完整:
Category表的sequelize.define调用未正确闭合,缺少字段配置对象的}以及方法调用的),导致代码解析时两个表的配置被错误合并,Sequelize 误判存在多个自增字段。 - 属性拼写错误:字段配置中的
primeryKey是拼写错误,正确的主键属性名应为primaryKey,错误的拼写会导致 Sequelize 无法正确识别主键配置,进一步引发解析异常。
修正后的代码示例
const Category = sequelize.define("category",{ categoryid:{ type:DataTypes.INTEGER, autoIncrement:false, allowNull:false, primaryKey:true // 修正拼写错误 } }); // 补全闭合的括号与花括号 const Blog = sequelize.define("blog",{ blogid:{ type:DataTypes.INTEGER, autoIncrement:true, allowNull:false, primaryKey:true // 修正拼写错误 } }); // 补全闭合的括号与花括号
说明
补全代码的闭合结构后,Sequelize 能正确区分两张表的独立配置;修正主键属性拼写后,主键规则会被正确识别,即可解决报错问题。
内容的提问来源于stack exchange,提问作者System1180
相关产品推荐
相关产品推荐

