获取mysql中任何表的最后插入ID

时间:2016-03-17 08:36:00

标签: php mysql

我正在通过php导入.sql文件。我的.sql文件包含多个表,我想要特定表的最后插入ID。 那么,如何按表名获取任何表的最后插入ID?

知道如何获取ID吗? 请不要建议,通过选择查询获取id以获得MAX id。

4 个答案:

答案 0 :(得分:1)

我们有。

id | value
1  |  10
3  |  20

然后我们插入2 | 15,因此它已成为

id | value
1  |  10
2  |  15
3  |  20

(提醒一下,我们有一个.sql文件,而不是实时连接)

现在你想知道,最后一个是2?如果是这样 - 这是不可能的。 .sql文件不保留这类信息,只保留裸数据和某些元数据。

答案 1 :(得分:1)

这可以在mysql和mysqli中完成。

 $conn = mysqli_connect($servername, $username, $password, $dbname);
    $sql = "INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('abc', 'xyz', 'abc@example.com')";
    if (mysqli_query($conn, $sql)) {
        $last_id = mysqli_insert_id($conn);}

在mysql中

       mysql_connect($servername, $username, $password);
       mysql_select_db($dbname);
        $sql = "INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('abc', 'xyz', 'abc@example.com')";
        if (mysql_query($sql)) {
            $last_id = mysql_insert_id();}

答案 2 :(得分:1)

只要定义auto_increment,就可以从information_schema.tables检索最后插入的自动增量ID:

select IF(auto_increment = 1, 
          'No row has been inserted', 
          auto_increment - @@auto_increment_increment) As LastInsertedId
from information_schema.tables 
where table_schema = 'DBName' and table_name = 'TableName';

答案 3 :(得分:0)

尝试这些功能

如果您使用的是PDO,请使用PDO::lastInsertId

如果您使用的是Mysqli,请使用mysqli::$insert_id

但如果必须,请使用mysql_insert_id