我有一个关于以有效方式构建查询的问题。目前要做一次INSERT我有以下
async function saveFixture(f) {
try {
await pool.query('INSERT into fixtures (match_id, home_team, home_team_id, away_team, away_team_id, league_name) VALUES ($1, $2, $3, $4, $5, $6) RETURNING *', [f.match_id, f.home_team, f.home_team_id, f.away_team, f.away_team_id, f.league_name])
} catch(e) {
console.error('Error Occurred ', e);
throw e;
}
}
# f being an object like so { match_id: '1', home_team: 'Team 1', home_team_id: '11', away_team: 'Team 2', away_team_id: '12', league_name: 'League Name' }
所以这是非常低效的吧?,每次我要插入的是对数据库的单独调用。首先将所有想要的对象放在数组中,然后执行多行插入会更好吗?
此声明还使我想到
INSERT into fixtures (match_id, home_team, home_team_id, away_team, away_team_id, league_name).
我对象中的每个键都与数据库中的列名称相对应,因此有一种方法可以将它们映射出来,而不是每个都写出来(因为我确实有20多个,因此本示例更短)。
任何人都可以提供一个示例来帮助我提高代码的效率吗,请使用查询构建技术,这是我真的很想了解和学习的东西
谢谢