javascript - 使用 Knex 循环插入表格

标签 javascript sql postgresql knex.js

我有一个用户表

 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 中做到这一点

最佳答案

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

例子:

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

关于javascript - 使用 Knex 循环插入表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56878839/

相关文章:

python - Django 找不到 psycopg2 模块

javascript - 使用纯 JavaScript 交错附加元素

sql - 将日期格式转换为 SELECT 中的双周存储桶

sql - 在插入时在 SQL 中自动生成 uniqueidentifier 的问题

sql - 获取计数行的最后一个实例

sql - 使用有序值更新表

javascript - AngularJS http eventHandlers 与 uploadEventHandlers

javascript - 我怎样才能在我的 jquery 代码中加入淡入淡出效果

javascript - 在 javascript 中使用 php 行?

sql - 从未提交的事务中恢复数据库行