используйте knex для динамического создания таблицы соединений

Я изучаю knex прямо сейчас и пытаюсь динамически вставлять номера идентификаторов из двух разных таблиц в пустую таблицу, которая позже будет использоваться в качестве таблицы соединений.

Это то, что у меня есть до сих пор, но я чувствую, что в данный момент я далеко от базы.

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

person Community    schedule 09.09.2016    source источник


Ответы (1)


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 имеют одинаковое количество элементов.

Я не знаю, зачем вам создавать среднюю таблицу таким образом, но пока мы не можем выполнить какую-либо операцию соединения на основе вашей информации.

person Sinux    schedule 28.09.2016