在python中使用MySQLdb插入mysql之后,如何安全高效地获取行id?

2024-04-20 08:28:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我在mysql中有一个简单的表,包含以下字段:

  • id——主键,int,自动递增
  • 名称——varchar(50)
  • 说明——varchar(256)

使用MySQLdb,一个python模块,我想在表中插入一个名称和描述,并取回id

在伪代码中:

db = MySQLdb.connection(...)
queryString = "INSERT into tablename (name, description) VALUES" % (a_name, a_desc);"

db.execute(queryString);
newID = ???

Tags: 模块代码name名称iddbmysqlconnection
3条回答

我想可能是

newID = db.insert_id()

按原始海报编辑

结果,在我使用的MySQLdb版本中(1.2.2) 您可以执行以下操作:

conn = MySQLdb(host...)

c = conn.cursor()
c.execute("INSERT INTO...")
newID = c.lastrowid

我把这个作为正确的答案,因为它让我指向了正确的方向。

你也可以做一个

conn.insert_id

我不知道这是否有一个MySQLdb特定的API,但是通常您可以通过SELECTing LAST_INSERT_ID()获得最后插入的id

它是基于每个连接的,所以如果其他客户机也执行插入,就不会有竞争条件的风险。

相关问题 更多 >