在插入数组数据(KNEXJS和SQLITE3)时插入重复项

时间:2018-09-07 06:14:58

标签: database sqlite knex.js

我在数据库中插入多个条目的代码如下:

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"}]

但是它将这样的数据两次插入数据库中

enter image description here

有人可以向我解释为什么它要在数据库中再插入2行吗?谢谢!

1 个答案:

答案 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);