是否可以从不是在最后一次插入中插入值的表的表中获取auto_increment
主键的当前id?
我所处的情况如下:
1 - 我在Evaluation
表中插入评估。
2 - 然后我在Evaluation_Details
表中插入与使用last_insert_id()
和
3 - 我最终根据问题的结果计算出评估所需的所有统计数据,并需要用它更新Evaluation
表。
现在问题就在于此。我需要获取Evaluation
表中最后一个插入的id,但last_insert_id()
现在将返回Evaluatin_Details
表中最后一个插入的id。
所有操作都在同一个事务中完成,每个表的id都有auto_increment
。
我知道查询:
SELECT `AUTO_INCREMENT`
FROM INFORMATION_SCHEMA.TABLES"
WHERE TABLE_SCHEMA = 'database_name'
AND TABLE_NAME = 'table_name';
可以给我下一个要插入的id的值,但我不认为只是查询这个并且减去1来获得当前的id是好的做法。
编辑:我忘了添加多个用户可能同时插入数据。这就是为什么我没有使用MAX(id) from table_name
。
谢谢!
答案 0 :(得分:0)
在您描述的第二步中,使用Evaluation_Details
表插入中的last_insert_id()
将多个记录插入Evaluation
。由于您拥有此ID,因此可以将其存储在变量中并使用它来执行上一次查询