0

我有一个这样的 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();

我想INSERT根据这些个人在另一张桌子上做其他陈述last_insert_ids

4

1 回答 1

1

没有办法做到这一点。last_insert_id()仅报告插入的最后一个元组。它绝对无法报告由多值插入生成的所有 ID。如果您需要多个最后一个 ID,则必须运行多个独立的 SINGLE 值集插入。

于 2014-02-08T04:12:00.747 回答