我想检索最后一个插入ID(在第二个表中用作关系),但是,我不知道如何获取它。我正在使用peewee ORM。
表格'读数'在数据库中#nab'有专栏' id' (int(11)auto_increment,主键)。
import time
from peewee import *
database = MySQLDatabase('nest', **{'user': 'nest'})
class Readings(BaseModel):
time = DateTimeField()
class Meta:
db_table = 'readings'
dt = Readings.insert(time=time.strftime("%x %X"))
dt.execute();
print "Last insert id:", dt.last_insert_id(database, Readings);
最后一行是我被困的地方。非常感谢你的帮助。
答案 0 :(得分:1)
非常感谢你的帮助,答案非常简单。这是正确的代码:
import time
from peewee import *
database = MySQLDatabase('nest', **{'user': 'nest'})
class Readings(BaseModel):
time = DateTimeField()
class Meta:
db_table = 'readings'
dt = Readings.insert(time=time.strftime("%x %X"))
print "Last insert id: %i" % dt.execute()
答案 1 :(得分:1)
以防万一,您可以在插入后立即获取 id
huey = User()
huey.username = 'Huey'
huey.save()
huey.id
答案 2 :(得分:0)
Python不需要半冒号!
只需注意...... InsertQuery.execute()实际应该返回最后一个插入ID。如果要调用last_insert_id(),则需要传入用于执行查询的游标。
答案 3 :(得分:0)
You can direct fetch id of that insert record like below
import time
from peewee import *
database = MySQLDatabase('nest', **{'user': 'nest'})
class Readings(BaseModel):
time = DateTimeField()
class Meta:
db_table = 'readings'
dt = Readings(time=time.strftime("%x %X"))
dt.save()
print "Last insert id:"+str(dt.id);