gpt4 book ai didi

mysql - 如何在 Knex.js 中获取多个插入的最后插入的 IDS?

转载 作者:行者123 更新时间:2023-11-29 15:55:26 27 4
gpt4 key购买 nike

我需要在一次插入多条记录时获取所有最后插入的 IDS,但现在我只获取一个 ID。

const data = await querybuilder('surveyresponse').insert(varList)

输出:

[183]

预期输出:

[183,184,185]

最佳答案

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(item => querybuilder('surveyresponse').insert(item)
))

其他帖子提到LAST_INSERT_ID()来获取最后一个,这样就可以得到间隔,但是这在高并发下风险很大,容易出错。

关于mysql - 如何在 Knex.js 中获取多个插入的最后插入的 IDS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56511643/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com