📜  从刚刚插入的行mysql服务器python获取id - SQL(1)

📅  最后修改于: 2023-12-03 15:21:56.121000             🧑  作者: Mango

从刚刚插入的行MySQL服务器Python获取ID

在MySQL数据库中,每个表都有一个自增的ID,也称为主键。在插入新行时,通常需要获取插入的行的ID。

以下是一种使用Python语言从MySQL服务器获取刚插入的行ID的方法。

安装MySQL驱动程序

在Python中与MySQL服务器进行交互需要使用第三方MySQL驱动程序。最常用的是mysql-connector-python,可以使用pip安装:

pip install mysql-connector-python
连接MySQL服务器

在与MySQL服务器进行交互之前,需要建立与服务器的连接。使用以下代码可以连接到服务器:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

确保将yourusernameyourpasswordmydatabase替换为实际值。如果您使用的是远程服务器,则还需要提供服务器IP地址。

插入新行并获取ID

假设您有一个名为customers的表。您可以使用以下Python代码向表中插入一行:

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print("1 record inserted, ID:", mycursor.lastrowid)

第一行代码创建一个指向MySQL服务器的游标对象。接下来,SQL插入语句准备要插入的值,%s表示占位符。通过execute()方法执行插入操作。最后一行打印插入的行的ID。

注意执行最后一行代码需要在插入行后提交更改。

完整代码
import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print("1 record inserted, ID:", mycursor.lastrowid)
总结

使用上述步骤和代码可以轻松地从MySQL服务器获取刚插入的行的ID。记住,每次插入行时都需要确保提交更改以便获得正确的ID。