在 django 中获取最后插入的 id
Posted
技术标签:
【中文标题】在 django 中获取最后插入的 id【英文标题】:Get the last inserted id in django 【发布时间】:2013-01-27 17:36:34 【问题描述】:我正在从其他数据库迁移一些数据,因此我使用原始 sql 查询将数据插入数据库。但我不知道如何从 django 中的原始 sql 查询中获取最后插入的 id。这个我试过了
affected_count1=cursor2.execute("table')")
and
SELECT IDENT_CURRENT(‘MyTable’)
但它给了我“(1305,'FUNCTION pydev.SCOPE_IDENTITY不存在')”的错误
所以请告诉我如何在 django 的原始 sql 查询中获取最后插入的 id
【问题讨论】:
***.com/questions/2548493/… 您使用的是哪个数据库引擎? 【参考方案1】:试试这个
LastInsertId = (TableName.objects.last()).id
【讨论】:
使用last().id
比使用.latest('id')
有什么好处,正如投票率最高的答案中所建议的那样?
.latest('id') 抛出错误:> TypeError: Object of type TableName is not JSON serializable【参考方案2】:
在 Django 1.6 中
obj = Foo.objects.latest('id')
obj = Foo.objects.earliest('id')
【讨论】:
【参考方案3】:你可以像这样获取最新的创建 obj:
obj = Foo.objects.latest('id')
更多信息here
【讨论】:
不,这与问题无关。 我知道这与问题无关:但是每当我尝试将 default=Foo.objects.latest('id') 添加到模型中的 ForeignKey 时;我收到错误“应用程序注册表尚未准备好”。启动时。 (Django 1.7a2);你知道为什么吗? 是最新的,使用并发吗?以上是关于在 django 中获取最后插入的 id的主要内容,如果未能解决你的问题,请参考以下文章
laravel 8:插入方法在 eloquent 中获取最后一个插入 id(插入方法)