簡體   English   中英

使用 Knex 和 PG 插入多行

[英]Insert Multiple Rows with Knex and PG

我在這里遇到了一些問題。 我有一個數組,我需要插入或更新我的數據庫中的記錄。

我得到了這個包含兩個字段的測試表: IDTEAM

這是我的代碼:

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);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM