1

是否可以从表中获取主键的当前 ID,该auto_increment表不是在最后一次插入中插入值的表?

我现在的情况是这样的:

Evaluation1 - 我在表中插入一个评估。

2 - 然后我在Evaluation_Details表格中插入与评估相关的每个问题的结果,使用last_insert_id()

3 - 我最终根据问题的结果计算了评估所需的所有统计数据,并需要Evaluation用它更新表格。

现在问题来了。我需要获取表中最后一个插入的 id,Evaluationlast_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.

谢谢!

4

1 回答 1

0

在您描述的第二步中,您Evaluation_Details使用last_insert_id()Evaluation插入插入多条记录。既然你有这个 id,你可以把它存储在一个变量中,并用它来执行你的最后一个查询

于 2013-08-06T21:40:28.417 回答