mysql 同时插入多条数据怎么获取这些id

INSERT INTO t1 (id,name) VALUES (1,'name1' ),(2,'name2')...
mysql 同时插入多条数据,怎么获取这些数据的ID?
条数是随机的,数据值也是随机的

阅读 10.1k
5 个回答

已以往经验,有批量插入时,最好新增一个“批号”的字段,可以用时间戳,也可以用其他方式,然后查询新增批号。

建议自己封装下,插入成功返回的时候,$this->db->getLastInsID()获取最后插入的ID,根据插入条数倒推其他的ID

按你这个sql看来,你的id是自己生成的么?如果自己生成的你可以先把数据生成的id存起来。如果是自增的,那就根据条数来推断。

利用 PDO::lastInsertId 手册传送 可以获取最后一条插入的id,在插入之前您可以先获得现在最大的IDMax(),这样第一个ID和最后一个ID都拿到了。然后您的数组是有顺序的 这样给它们编号进去,这样您就知道了刚刚插入了哪些ID,当然坐等大佬指点更优秀的方法

这个要看你的id是如何生成的,如果是数据库自增的话应该没有办法返回给你吧,如果是你自己定义的id的话你可以在插入成功之后自己维护这条id。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题