我需要获取所有最后插入的IDS,同时一次插入多条记录,但是现在我仅获得一个ID。
const data = await querybuilder('surveyresponse').insert(varList)
输出:
[183]
预期输出:
[183,184,185]
答案 0 :(得分:0)
MySQL本身不返回该信息,因此Knex.js也不返回该信息。来自文档:
// Returns [2] in "mysql", "sqlite"; [2, 3] in "postgresql"
knex.insert([{title: 'Great Gatsby'}, {title: 'Fahrenheit 451'}], ['id']).into('books')
您可以使用多个查询(不是最有效的方法):
const data = await Promise.all(varList.map(var => querybuilder('surveyresponse').insert(var)
))
其他帖子提到LAST_INSERT_ID()
来获取最后一个,因此您可以获取时间间隔,但这在高并发中非常危险且容易出错。