【问题标题】:Loop insertion into table using Knex使用 Knex 循环插入表格
【发布时间】:2019-11-14 15:48:07
【问题描述】:

我有一个用户表

 id | firstName | lastName 
---------------------------
 2  | Dave      | Smith
 3  | Peter     | Smith
 4  | Steve     | Smith

还有一个设置表

 id |  key    | value | user_id
--------------------------------
 1  | 'style' | 1     | 2

我想在设置表中为每个应该具有key = 'styleId'value = 1user_id 的新行创建新行 = 循环中 id 的当前值

 id  |  key    | value | user_id
---------------------------------
 101 | 'style' | 1     | 1
 102 | 'style' | 1     | 2
 103 | 'style' | 1     | 3

伪代码

const usersIds = knex.select('id').from('users')
for each (id in usersIds) {
    knex('settings').insert({
        value: 'style',
        key:1,
        user_id: id
    })
}

如何在 knex 中做到这一点

【问题讨论】:

    标签: javascript sql postgresql knex.js


    【解决方案1】:

    这里不需要进行多次插入查询,可以先创建数据数组,然后用该数组进行插入查询。

    例子:

    knex.select('id').from('users').then(users => {
        const settings = []
        users.forEach(user => {
            settings.push({
                value: 'style',
                key: 1,
                user_id: user.id
            })
        })
    
        return knex('settings').insert(settings)
    })
    

    【讨论】:

      猜你喜欢
      • 2015-02-13
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      相关资源
      最近更新 更多