插入数组数据时插入重复条目(KNEXJS 和 SQLITE3)

Inserts duplicate entry when you insert arrayed data (KNEXJS and SQLITE3)

我在数据库中插入多个条目的代码是这样的:

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 = knex('Items').insert(model)

但是它像这样在数据库中插入数据两次

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

您粘贴的问题代码实际上没有插入任何内容(永远不会触发查询生成器)。

Knex 不会将数据插入两次,除非您告诉它插入两次。也许在您没有显示的代码中,您正在为存储在变量 result.

中的查询生成器调用 .then() 两次

这可能会更好:

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