在peewee ORM(python)中获取最后一个插入ID

时间:2016-12-11 18:51:14

标签: python mysql peewee

我想检索最后一个插入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);

最后一行是我被困的地方。非常感谢你的帮助。

4 个答案:

答案 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);