如何在插入

时间:2016-09-16 07:57:10

标签: php mysql mysqli

如何从数据库表中选择最后一个插入ID

我需要从数据库中获取最后一个插入ID

我尝试了last_insert_id()函数,但这对我不起作用,因为我想在我执行插入查询之前得到此id,当我得到此id时,我执行插入查询

我尝试使用max作为id,但这有一个问题,如果我有一个删除 id不会被采取

  

例如,如果我删除了id 10,那么max id将是9但是auto   增量将是11

比我想拥有将由自动增量添加的新ID

  

示例:我删除了一个id 10,我想要比下一个id更新   11

3 个答案:

答案 0 :(得分:2)

你可以:

    SELECT AUTO_INCREMENT
    FROM  INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = 'database_name'
    AND   TABLE_NAME   = 'table_name';
得到你的最后一个身份。

答案 1 :(得分:1)

当插入完成时,自动增量值由数据库本身生成;这意味着在进行实际的插入查询之前无法获取它。     插入一些半空数据     获取已生成的自动增量值     使用该自动增量值进行计算     更新行以使用更新查询的where子句中先前生成的自动增量来放置新/完整数据,以识别正在更新的行。

As pseudo-code :
begin transaction
insert into your table (half empty values);
$id = get last autoincrement id
do calculations
update set data = full data where id = $id
commit transaction

或者您可以关注Using Auto-Increment value in MYSQL Before Insert Trigger?

答案 2 :(得分:0)

在插入之前,您不能也不应该获取最后插入的id。

没有一个理由这样做。只需插入您的数据,获取实际ID,并在其他任何地方使用它。就如此容易。