如何将引用的 table 中的信息插入到另一个 table 中?
How can I insert information from a referenced table into another table?
我需要创建包含多个问题的表单并通过 knex 插入数据。
我首先使用 ID 和订单号创建表单,然后创建问题,这些问题需要从表单中获取 ID 才能正确分配。
// basic form insertion, id is generated automatically
return knex("forms").insert([
{ title: "Form 1 title", order: "1"} // id = gen_random_uuid();
// form2, form3...
]};
// form_id is referenced for questions
return knex("questions").insert([
{
form_id: "???",
title: "Question 1",
order: "1"
}
]);
我的想法是使用 select 和 where,但我无法让它们工作。
return knex.select("id").from("forms").where("order", "1")
PS。我实际上需要获取页面 --> 它们的 id 以分配表单 --> 它们的 id 以正确分配问题。但是,如果我成功了,之后可能只需要多一步。
您可以告诉 return 生成的 ID,请参阅:https://knexjs.org/#Builder-returning
然后您可以将 returned ID 用于您的第二个插入。
示例:
knex("forms").returning("id").insert([
{ title: "Form 1 title", order: "1"} // id = gen_random_uuid();
// form2, form3...
]}
.then(function(rows) {
for (let i = 0; i < rows.length; i++) {
knex("questions").insert([
{
form_id: rows[i].id,
title: "Question 1",
order: "1"
}
])
}
});
我需要创建包含多个问题的表单并通过 knex 插入数据。
我首先使用 ID 和订单号创建表单,然后创建问题,这些问题需要从表单中获取 ID 才能正确分配。
// basic form insertion, id is generated automatically
return knex("forms").insert([
{ title: "Form 1 title", order: "1"} // id = gen_random_uuid();
// form2, form3...
]};
// form_id is referenced for questions
return knex("questions").insert([
{
form_id: "???",
title: "Question 1",
order: "1"
}
]);
我的想法是使用 select 和 where,但我无法让它们工作。
return knex.select("id").from("forms").where("order", "1")
PS。我实际上需要获取页面 --> 它们的 id 以分配表单 --> 它们的 id 以正确分配问题。但是,如果我成功了,之后可能只需要多一步。
您可以告诉 return 生成的 ID,请参阅:https://knexjs.org/#Builder-returning
然后您可以将 returned ID 用于您的第二个插入。
示例:
knex("forms").returning("id").insert([
{ title: "Form 1 title", order: "1"} // id = gen_random_uuid();
// form2, form3...
]}
.then(function(rows) {
for (let i = 0; i < rows.length; i++) {
knex("questions").insert([
{
form_id: rows[i].id,
title: "Question 1",
order: "1"
}
])
}
});