我在数据库中插入多个条目的代码如下:
sorted_x.concat(sorted_non_x)
#=> [{"name"=>"X", "year"=>"2013-08"}, {"name"=>"X", "year"=>"2000-08"},
# {"name"=>"B", "year"=>"2018-05"}, {"name"=>"A", "year"=>"2017-01"},
# {"name"=>"C", "year"=>"2016-04"}, {"name"=>"D", "year"=>"2016-04"}]
但是它将这样的数据两次插入数据库中
有人可以向我解释为什么它要在数据库中再插入2行吗?谢谢!
答案 0 :(得分:1)
您粘贴有问题的代码实际上不会插入任何内容(永远不会触发查询生成器)。
Knex不会两次插入数据,除非您告诉它两次插入。也许在您未显示的代码中,您两次为存储在变量.then()
中的查询生成器调用result
。
这可能会更好:
let model = [
{
Question: '1 + 1',
QuestionTypeId: 1,
Answer: '2',
QuizId: 1,
Options: null
},
{
Question: '1 + 2',
QuestionTypeId: 1,
Answer: '3',
QuizId: 1,
Options: null
}
];
let result = await knex('Items').insert(model);