我在php中有这个查询。这是一个insert select copying table2,但是我需要获取新创建的行的It并将它们存储到一个数组中。下面是我的代码:
$sql = "INSERT INTO table1 SELECT distinct * from table2";
$db->query($sql);我可以从table2上的select开始恢复流程,然后进行所有的单次插入,但这会减慢大表上的脚本运行速度。想法?
发布于 2020-06-28 01:05:47
您可以锁定表,插入行,并获取最后插入的项的ID,然后解锁;这样,您就知道这些ID是连续的,因为没有其他并发用户可以更改它们。不过,锁定和解锁是需要谨慎使用的东西。
另一种方法是使用表中的一列-要么是“更新的”datetime列,要么是insert-id列(为其输入的值在所有行中都是相同的)。
这样,您就可以对数据库中的ID进行后续选择,匹配更新时间或您选择的插入ID。
https://stackoverflow.com/questions/62608558
复制相似问题