插入数组数据时插入重复条目(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);
我在数据库中插入多个条目的代码是这样的:
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);