在 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(插入方法)

如何在 zf2 中获取最后插入的 id?

如何在多条记录插入中获取最后插入的 id?

在codeigniter中多次进入mysql时获取最后插入的'Id'

使用学说 2 获取最后一个插入 id?

为啥我无法在 PHP 和 MySQL 中获取最后一个插入 ID?