我有两个具有现有数据的表,我正在尝试将它们与上传时的续集相关联,
表一(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})
时,我得到了字段名,但是这将是一个空表,并且我无法联接两个表来获得结果,就好像我上载数据时,我将不会通过续集来创建字段。如果我手动执行它会起作用...这将是自动化过程。我想拥有
表二(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
我如何在上载表两个数据时使用现有数据更新此awgId?请帮忙 ..!
最佳答案
您尚未正确定义序列化关联。您试图将表awg
和harnes_detial
关联,但是ORM生成的查询表明它正在将harnes_detial
与get_awgs
关联。
另一个观察结果是您希望ORM自动在getAwgId
表中生成harness_detial
列,但是ORM希望您事先拥有一个数据库列。您可以映射外键和目标键。
我建议您关注official documentation of sequelize和this博客,以了解有关如何定义序列关联的更多信息。
希望能帮助到你!