使用 knex 动态创建连接 table
use knex to dynamically create join table
我现在正在学习 knex 并尝试将来自两个不同 table 的 ID 号动态插入到空的 table 中,稍后将用作连接 table上。
这就是我目前的情况,但我觉得我现在离基地还很远。
exports.seed = function(knex, Promise) {
return knex('future_join_table').del()
.then(function () {
return Promise.all([
// Inserts seed entries
knex('future_join_table').insert({
first_id: knex('table1').select('id'),
second_id: knex('table2').select('id')
})
]);
});
};
exports.seed = (knex) => {
let table1Array = [];
const toBeInsertRows = []
return knex('future_join_table').del()
.then(() => knex.select('id').from('table1'))
.then((rows) => {
table1Array = rows;
return knex.select('id').from('table2')
})
.then((rows) => {
rows.forEach((row, index) => toBeInsertRows.push({ first_id: table1Array[index].id, second_id: row.id }))
return knex('future_join_table').insert(toBeInsertRows);
});
}
上面的代码假定您的 table1
和 table2
具有相同数量的项目。
我不知道你为什么要这样做一个中间table,但目前我们无法根据你的信息进行任何连接操作。
我现在正在学习 knex 并尝试将来自两个不同 table 的 ID 号动态插入到空的 table 中,稍后将用作连接 table上。
这就是我目前的情况,但我觉得我现在离基地还很远。
exports.seed = function(knex, Promise) {
return knex('future_join_table').del()
.then(function () {
return Promise.all([
// Inserts seed entries
knex('future_join_table').insert({
first_id: knex('table1').select('id'),
second_id: knex('table2').select('id')
})
]);
});
};
exports.seed = (knex) => {
let table1Array = [];
const toBeInsertRows = []
return knex('future_join_table').del()
.then(() => knex.select('id').from('table1'))
.then((rows) => {
table1Array = rows;
return knex.select('id').from('table2')
})
.then((rows) => {
rows.forEach((row, index) => toBeInsertRows.push({ first_id: table1Array[index].id, second_id: row.id }))
return knex('future_join_table').insert(toBeInsertRows);
});
}
上面的代码假定您的 table1
和 table2
具有相同数量的项目。
我不知道你为什么要这样做一个中间table,但目前我们无法根据你的信息进行任何连接操作。