我有两个包含现有数据的表,我试图在上传时将它们与sequelize相关联,
其中,表1(Get_awgs)包含:
id| awg | area |表二(Harnes_detial)包含将被上传的内容:
id| gauge | description | price 其中我通过以下方式将它们关联起来:
Harness.belongsTo(Awg,{constraints: false, foregineKey:'getAwgId'});
Awg.hasMany(Harness);我已经通过foreignKey更新了查询
PRIMARY KEY (id), FOREIGN KEY (getAwgId) REFERENCES get_awgs (id)
ON DELETE SET NULL
ON UPDATE CASCADE)
ENGINE=InnoDB;当我路由我的模型时
router.get("/mergeTable/:awg", (req, res)=>{
var awg = req.params.awg;
Harness.findAll({where: {gauge: awg}, include:[{model: Awg}]}).then(resutls =>{
res.send(JSON.stringify(resutls));
}).catch(err=>{
console.log(err);
});
});它说: SQL消息:“未知的列'harnes_detial.getAwgId‘在’字段列表‘”,当我.sync({force: true})我得到的字段名称,但这是将有一个空表,我不能连接两个表的结果,如果我上传数据,我将不会有序列化创建的字段。如果我这样做,它是有效的manually...what将是自动化的过程。
我想要的是
表二(Harnes_detial)包含:
id| gauge | description | price | getAwgId
1 20 xyz 30 1
2 30 xyz 20 2
3 40 xyz 50 3
4 20 xyz 60 1如何使用上传表2数据的现有数据更新此awgId?请帮帮我!
发布于 2020-01-27 21:34:49
您尚未正确定义序列化关联。您正在尝试将表awg和harnes_detial关联起来,但是ORM生成的查询显示它正在将harnes_detial与get_awgs关联起来。
另一个观察结果是,您希望ORM在harness_detial表中自动生成getAwgId列,但是ORM希望您预先拥有一个数据库列。您可以映射外键和目标键。
我建议你关注official documentation of sequelize和this博客,了解更多关于如何定义sequelize关联的内容。
希望它能帮上忙!
https://stackoverflow.com/questions/59930858
复制相似问题