gpt4 book ai didi

php - 从多个插入查询中恢复生成的 ID

转载 作者:行者123 更新时间:2023-11-29 04:13:44 25 4
gpt4 key购买 nike

我想执行以下形式的查询:

INSERT INTO table(field1, field2) SELECT field1, field2 FROM table WHERE id IN ( 4, 8, 15, 16, 23, 42 )

其中 id 是 table 的 auto_increment'ing 主键。

执行这条语句后,我想知道刚刚生成的所有新 id 是什么。我怎样才能恢复这些信息?我有兴趣(也许)在存储过程中执行此操作并将新生成的 id 的列表返回到我的应用程序代码(比方说 PHP),我希望该列表与 IN 子句中出现的顺序相关SELECT 子查询。我认为这会在我的应用程序代码中节省大量顺序插入。这是可以实现的吗?

最佳答案

如果您可以控制该表(或可以创建另一个表)如何存储“transaction_id?”

如果你把它添加到你的表中,你可以这样做:

Declare @tranId int
Select @tranId = Max(transaction_id) + 1 from [table]
Insert Into [table] (field1, field2, transactionId)
Select field1, field2, @tranId
From //the rest of your query

然后您将提取新的 ID:

Select Id from [table] where transaction_id = @tranId

请注意,您要么需要立即运行该查询作为存储过程的一部分,要么需要将您使用的 transactionId 存储在某处,以便您可以提取正确的行而不必担心多个并发插入。

关于php - 从多个插入查询中恢复生成的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3367152/

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