Python 在Google App Engine上的Mysql中插入行后获取ID

Python 在Google App Engine上的Mysql中插入行后获取ID,python,mysql,google-app-engine,Python,Mysql,Google App Engine,我正在用Python在Google App Engine上构建一个使用mysql的应用程序。在使用autoincrement在表中插入新行时,需要检索自动生成的ID。包括以下两篇文章在内的几篇文章建议使用“SELECT LAST_insert_ID()”,但这不起作用 当使用该命令时,我得到的是所有ID中的第一个ID。我的代码如下所示: cursor.execute("INSERT INTO tablename (val1, val2) VALUES ("foobar", 42);") la

我正在用Python在Google App Engine上构建一个使用mysql的应用程序。在使用autoincrement在表中插入新行时,需要检索自动生成的ID。包括以下两篇文章在内的几篇文章建议使用“SELECT LAST_insert_ID()”,但这不起作用

当使用该命令时,我得到的是所有ID中的第一个ID。我的代码如下所示:

cursor.execute("INSERT INTO tablename (val1, val2) VALUES ("foobar", 42);")
last_id = cursor.execute("SELECT LAST_INSERT_ID();")

还有其他方法吗?

SQL是正确的,但Python不是
cursor.execute()
返回受影响的行数,而不是操作的结果。您需要调用
cursor.fetchone()
以获得实际结果,这将是一个元组。

谢谢,这确实解决了问题。为了清楚起见,这里是最后的代码(为缺少换行符表示歉意):
cursor.execute(“插入到tablename(val1,val2)值('foobar',42);”)
cursor.execute(“从tablename中选择LAST_INSERT_ID())
LAST_ID=cursor.fetchone()[0]