是否可以从表中获取主键的当前 ID,该auto_increment
表不是在最后一次插入中插入值的表?
我现在的情况是这样的:
Evaluation
1 - 我在表中插入一个评估。
2 - 然后我在Evaluation_Details
表格中插入与评估相关的每个问题的结果,使用last_insert_id()
和
3 - 我最终根据问题的结果计算了评估所需的所有统计数据,并需要Evaluation
用它更新表格。
现在问题来了。我需要获取表中最后一个插入的 id,Evaluation
但last_insert_id()
现在将返回表中最后一个插入的 id Evaluatin_Details
。
一切都在同一个事务中完成,每个表都有auto_increment
它的 id。
我知道查询:
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
.
谢谢!