如何最有效地获取多个 last_insert_id
Posted
技术标签:
【中文标题】如何最有效地获取多个 last_insert_id【英文标题】:How to best efficiently get multiple last_insert_ids 【发布时间】:2014-02-08 04:07:14 【问题描述】:我有一个这样的 SQL INSERT 语句:
INSERT INTO my_tickets( tk_type, tk_qty) VALUES('typeValue1','qtyValue1'),('typeValue2', 'qtyvalue2'),('typeValue3', 'qtyValue3'); SET @lastId = LAST_INSERT_ID();
我意识到LAST_INSERT_ID()
只会获得从列表中插入的第一个AUTO_INCREMENT
id。会有更多的清单。有没有一种更有效的方法来获取每个 last_insert_ids
而无需重复(使用 php 循环结构)INSERT
查询,如下所示:
INSERT INTO my_tickets(tk_type, tk_qty) VALUES('typeValue1', 'qtyValue1');
SET @lastId = LAST_INSERT_ID();
INSERT INTO my_tickets(tk_type, tk_qty) VALUES('typeValue2', 'qtyValue2');
SET @lastId = LAST_INSERT_ID();
INSERT INTO my_tickets(tk_type, tk_qty) VALUES('typeValue3', 'qtyValue3');
SET @lastId = LAST_INSERT_ID();
我想根据这些个人last_insert_ids
在另一个表上创建其他INSERT
语句。
【问题讨论】:
【参考方案1】:没有办法做到这一点。 last_insert_id()
仅报告插入的 LAST 元组。它绝对无法报告由多值插入生成的所有 ID。如果您需要多个 last id,则必须运行多个独立的 SINGLE 值集插入。
【讨论】:
如果表中没有唯一约束(在查询中传递)以上是关于如何最有效地获取多个 last_insert_id的主要内容,如果未能解决你的问题,请参考以下文章
如何有效地将属性更改为 Android Studio 中的多个视图/按钮?