我这里遇到了一些问题。我有一个数组,我需要插入或更新数据库中的记录。
我得到了这个包含两个字段的测试表:ID 和 TEAM。
这是我的代码:
var idPlayer = []
query('tb_teste').select('id')
.then((row) =>{
for(var i = 0; i < row.length; i++){
idPlayer[i] = row[i].id
}
// just put this here for test purposes. I have 360+ PlayerIDs.
var pArray = [{ PlayerID: 201980, TeamID: 1610612761 },
{ PlayerID: 202691, TeamID: 1610612744 }]
for(var x = 0; x < pArray.length; x++){
if(idPlayer.includes(pArray[x].PlayerID)){
console.log('Está na listagem', pArray[x].PlayerID)
// will do the update later
} else {
console.log('Não está na lista', pArray[x].PlayerID)
return query('tb_teste').insert({
id: pArray[x].PlayerID,
team: pArray[x].TeamID
})
}
}
})
我的表现在是空的,但我无法插入这两条记录,只有第一条记录插入到最后。无论如何,我可以一次插入这些记录吗?我真的需要使用 for 来做到这一点吗?
提前致谢。
最佳答案
我想你可能会尝试做这样的事情:
const pArray = [{ PlayerID: 201980, TeamID: 1610612761 },
{ PlayerID: 202691, TeamID: 1610612744 }];
query('tb_teste').then(rows => {
console.log('all rows in table before:', rows);
return query('tb_teste').insert(pArray).returning('*');
}).then(rows => {
console.log('Inserted rows:', rows);
return query('tb_teste');
}).then(rows => {
console.log('all rows in table after:', rows);
});
关于javascript - 使用 Knex 和 PG 插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59309491/