插件窝 干货文章 MySQL命令行插入数据后,如何获取自增ID?

MySQL命令行插入数据后,如何获取自增ID?

INSERT LAST 插入 value 997    来源:    2025-03-14

在MySQL中,当你向一个带有自增主键(AUTO_INCREMENT)的表中插入数据时,可以使用以下几种方法来获取刚刚插入的自增ID。

方法1:使用 LAST_INSERT_ID() 函数

在插入数据后,立即执行 SELECT LAST_INSERT_ID(); 语句,可以获取到刚刚插入的自增ID。

INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2');
SELECT LAST_INSERT_ID();

方法2:在同一个查询中获取自增ID

你可以在插入数据的同时获取自增ID,使用 LAST_INSERT_ID() 函数。

INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2');
SELECT LAST_INSERT_ID() AS last_id;

方法3:使用 mysql_insert_id() 函数(在编程语言中)

如果你是通过编程语言(如PHP、Python等)与MySQL交互,可以使用相应的函数来获取自增ID。

  • PHP:

    $query = "INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2')";
    mysqli_query($connection, $query);
    $last_id = mysqli_insert_id($connection);
    echo "Last inserted ID is: " . $last_id;
    
  • Python (using MySQLdb):

    cursor.execute("INSERT INTO your_table (column1, column2) VALUES (%s, %s)", ('value1', 'value2'))
    last_id = cursor.lastrowid
    print("Last inserted ID is:", last_id)
    
  • Python (using PyMySQL):

    cursor.execute("INSERT INTO your_table (column1, column2) VALUES (%s, %s)", ('value1', 'value2'))
    last_id = cursor.lastrowid
    print("Last inserted ID is:", last_id)
    

方法4:使用 RETURNING 子句(MySQL 8.0+)

在MySQL 8.0及以上版本中,你可以使用 RETURNING 子句来获取插入的自增ID。

INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2') RETURNING id;

注意事项

  • LAST_INSERT_ID() 函数是基于当前连接的,因此它只会返回当前连接中最后插入的自增ID。
  • 如果你在一个事务中插入多条记录,LAST_INSERT_ID() 只会返回最后一条插入记录的自增ID。

通过以上方法,你可以轻松获取MySQL中插入数据后的自增ID。