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

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

INSERT 插入 MySQL 使用 301    来源:    2025-03-15

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

1. 使用 LAST_INSERT_ID() 函数

在MySQL命令行中,插入数据后,你可以立即使用 LAST_INSERT_ID() 函数来获取最后插入的自增ID。

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

LAST_INSERT_ID() 函数会返回最后插入的自增ID。

2. 在编程语言中使用MySQL API

如果你是通过编程语言(如Python、PHP、Java等)与MySQL交互,大多数MySQL API都提供了获取最后插入ID的方法。

Python (使用 mysql-connector-python)

import mysql.connector

# 连接数据库
conn = mysql.connector.connect(user='username', password='password', host='localhost', database='your_database')
cursor = conn.cursor()

# 插入数据
query = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
values = ('value1', 'value2')
cursor.execute(query, values)

# 获取自增ID
last_insert_id = cursor.lastrowid
print("Last Insert ID:", last_insert_id)

# 提交事务并关闭连接
conn.commit()
cursor.close()
conn.close()

PHP (使用 mysqli)

<?php
// 连接数据库
$mysqli = new mysqli("localhost", "username", "password", "your_database");

// 检查连接
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

// 插入数据
$sql = "INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2')";
if ($mysqli->query($sql) === TRUE) {
    // 获取自增ID
    $last_insert_id = $mysqli->insert_id;
    echo "Last Insert ID: " . $last_insert_id;
} else {
    echo "Error: " . $sql . "<br>" . $mysqli->error;
}

// 关闭连接
$mysqli->close();
?>

3. 使用 OUTPUTRETURNING 子句(不适用于MySQL)

在某些数据库系统(如SQL Server或PostgreSQL)中,你可以使用 OUTPUTRETURNING 子句来获取插入的自增ID。但MySQL不支持这些语法。

总结

在MySQL中,获取自增ID的最常用方法是使用 LAST_INSERT_ID() 函数或在编程语言中使用相应的API方法。这些方法都能有效地获取刚刚插入的自增ID。