有没有办法从之前运行的insert_batch()方法中获取所有插入ID(使用$ this-> db-> insert_id())?
理想情况下,它会按插入顺序吐出一个简单的id数组。
答案 0 :(得分:4)
创建触发器会起作用。
不确定它的gona是否会影响大批量插入的性能
DELIMITER $$
CREATE
TRIGGER `test`.`getids` AFTER INSERT
ON `database_name`.`table_name`
FOR EACH ROW BEGIN
INSERT INTO last_inserted_ids (last_insertId) VALUES(LAST_INSERT_ID());
END$$
DELIMITER ;
它会将所有ID都放入表中,因为您希望它们在数组中编写一个查询,该查询在批处理之后运行并获取表last_inserted_ids
中的所有值,然后截断它以便您始终拥有批处理执行后所需的ID。
希望这有助于你的情况。