我搜索了网络,我找到了this,这可能与我的问题有关,但我不明白,我是来问这个的。
我试图把数据插入到表格中。我正在使用sequelize v6和mysql。
我在数据库中拥有的
我有两张桌子,学生和乡镇。
学生表:id, name, email, township_id
乡镇表:id, name
我在我的联想中所拥有的
学生模型
Student.belongsTo(models.Township, {
foreignKey: "townshipId",
as: "township",
});乡镇模式
Township.hasMany(models.Student, {
foreignKey: "townshipId",
as: "township",
});我在req里有什么
在我的req中,我有如下数据:
{
name: 'john',
email: 'john@gmail.com',
township: 'Flank',
}问题
实际上,我正试图将csv数据批量插入到我的数据库中。最终用户将使用上述数据(在req中)将数据填充到excel中,并将其保存为csv文件并将其导入系统。问题在于我解析csv时得到的值是乡名为text value,在本例中是Flank。但我确实需要将其更改为integer township_id,以便可以使用该township_id插入students表。
(我所做的是:获取乡镇名称(在本例中为Flank )并运行QuerySELECT township_id FROM townships WHERE name = 'Flank',如果乡镇表中有Flank,则获取township_id。因此,我现在可以使用这个township_id插入students表。但我认为这是非常昂贵的,另一个事实是,我还有50个这样的领域。)
因此,我的问题是,如何将该township: 'Flank'插入到students表中,而不首先显式地找到township_id (避免我所做的事情)。
谢谢。
发布于 2020-12-08 12:50:35
问题在于解析csv得到的值是乡镇名称作为文本值,在本例中是
Flank。但我确实需要将其更改为整数township_id,以便可以使用该township_id插入到students表中。
为了这个,而不是
INSERT INTO students (name , township, ...)
VALUES ('John' , 'Flank' , ...)你必须用
INSERT INTO students (name , township_id, ...)
SELECT 'John' , township_id, ...
FROM towns
WHERE town_name = 'Flank';PS。我不知道如何在脚本/框架语法中执行INSERT .. SELECT。
https://stackoverflow.com/questions/63196469
复制相似问题