生成新的内容如何获取当前生成内容的id

django 向mysql插入一行新数据,如何获得这个新的一行数据的主键?8 名作者发布了 13 个帖子  
问题

姜楚乔  2月19日


我用django开发app 后端,需要向mysql中的某个表插入一行新数据,mysql会自动增加主键,我如果重新查询那个主键就太耗费资源,但是那个主键是必须在插入之后才会生成,我想知道有没有什么好的方法在插入数据之后可以很方便的获取新增行的主键?请各位大神指教

est  2月19日

connection.insert_id()
搜一下就出来了。

2014-02-19 14:52 GMT+08:00 姜楚乔 <[email protected] >:


我用django开发app 后端,需要向mysql中的某个表插入一行新数据,mysql会自动增加主键,我如果重新查询那个主键就太耗费资源,但是那个主键是必须在插入之后才会生成,我想知道有没有什么好的方法在插入数据之后可以很方便的获取新增行的主键?请各位大神指教 -- 
-- 
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [email protected]
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
--- 
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 [email protected]
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。


0 0

Jackfengji  2月19日

object.pk就可以了吧?

在 2014年2月19日 下午2:54,est <[email protected] >写道:- 显示引用文字 -
1 0

姜楚乔  2月19日

我是用django自带的model类操作的数据库,不需要connection=MySQLdb.connect()这句话

在 2014年2月19日 下午2:54,est <[email protected] >写道:

connection.insert_id()
搜一下就出来了。- 显示引用文字 -- 显示引用文字 -您收到此邮件是因为您订阅了 Google 网上论坛“python-cn(华蟒用户组,CPyUG 邮件列表)”中的主题。
要退订此主题,请访问  https://groups.google.com/d/topic/python-cn/nVwzxyspiIQ/unsubscribe。
要退订此论坛及其所有主题,请发送电子邮件到  [email protected]
要查看更多选项,请访问  https://groups.google.com/groups/opt_out。


0 0

姜楚乔  2月19日

我现在是不知道新插入的这行数据的主键会是多少,object.pk 是知道主键多少之后才查询的,和我的问题不一样

在 2014年2月19日 下午2:58,Jack Feng <[email protected] >写道:

- 显示引用文字 -- 显示引用文字 -您收到此邮件是因为您订阅了 Google 网上论坛“python-cn(华蟒用户组,CPyUG 邮件列表)”中的主题。
要退订此主题,请访问  https://groups.google.com/d/topic/python-cn/nVwzxyspiIQ/unsubscribe。
要退订此论坛及其所有主题,请发送电子邮件到  [email protected]
要查看更多选项,请访问  https://groups.google.com/groups/opt_out。


0 0

qihangzp  2月19日

如果model里的主键不是django自动生成而是你自己定义的话,你就只能再去数据库库里查一下或者用connection的insert_id函数如果model是django自动生成的主键,那record.save()后,record.id 就能得到http://stackoverflow.com/q/1161149
http://stackoverflow.com/q/2548493


在 2014年2月19日 下午3:01,姜楚乔 <[email protected] >写道:- 显示引用文字 -
0 0

姜楚乔  2月19日

我的model里面的主键是自己写上去的,但是我也可以在record.save()之后,用record.id()得到,这个和django自动生成主键的record.id()有区别吗?

在 2014年2月19日 下午3:22,qihang zhang <[email protected] >写道:- 显示引用文字 -
0 0

三画儿  2月19日

插入之后不需要重新查询啊

用django的orm的 例如 user.save()以后 直接user.id就可以了

在 2014年2月19日星期三UTC+8下午2时52分53秒,姜楚乔写道:


我用django开发app 后端,需要向mysql中的某个表插入一行新数据,mysql会自动增加主键,我如果重新查询那个主键就太耗费资源,但是那个主键是必须在插入之后才会生成,我想知道有没有什么好的方法在插入数据之后可以很方便的获取新增行的主键?请各位大神指教

1 0

Foxmessire  2月19日

Re: [CPyUG] Re: django 向mysql插入一行新数据,如何获得这个新的一行数据的主键?正解

在 2014年2月19日 下午5:04,三画儿 <[email protected]>写道:

- 显示引用文字 --- 
-- 
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则:  http://code.google.com/p/cpyug/wiki/PythonCn
发言:  [email protected]
详情:  http://code.google.com/p/cpyug/wiki/CpyUg
G+:  https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问!  http://wiki.woodpecker.org.cn/moin/AskForHelp
--- 
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到  [email protected]
要查看更多选项,请访问  https://groups.google.com/groups/opt_out。


0 0

姜楚乔  2月19日

Re: [CPyUG] Re: django 向mysql插入一行新数据,如何获得这个新的一行数据的主键?我这个id主键即使是自己写在model里面的而不是django自动生成的,直接用user.id也没有查询数据库,对吗?

在 2014年2月19日 下午5:04,三画儿 <[email protected]>写道:

插入之后不需要重新查询啊- 显示引用文字 --- 
-- 
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则:  http://code.google.com/p/cpyug/wiki/PythonCn
发言:  [email protected]
详情:  http://code.google.com/p/cpyug/wiki/CpyUg
G+:  https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问!  http://wiki.woodpecker.org.cn/moin/AskForHelp
--- 
您收到此邮件是因为您订阅了 Google 网上论坛“python-cn(华蟒用户组,CPyUG 邮件列表)”中的主题。
要退订此主题,请访问  https://groups.google.com/d/topic/python-cn/nVwzxyspiIQ/unsubscribe。
要退订此论坛及其所有主题,请发送电子邮件到  [email protected]
要查看更多选项,请访问  https://groups.google.com/groups/opt_out。


0 0

Wesley.Daniel  2月24日

Re: [CPyUG] Re: django 向mysql插入一行新数据,如何获得这个新的一行数据的主键?你是不时考虑性能问题,说白了就是多次查询数据库,你之前的场景是对同一个新记录,是insert + query, 你现在只是想一次insert后,可以继续后面的代码而不需再去query之前插入的数据?

在 2014年2月19日星期三UTC+8下午10时22分20秒,姜楚乔写道:- 显示引用文字 -0 0

Wis Zhou  2月24日

答复: [CPyUG] Re: django 向mysql插入一行新数据,如何获得这个新的一行数据的主键?

这个ID是在做save操作时更新到对象里面的, 所以你save后调user.id不会发生2次查询。

 

发件人: [email protected] [mailto:[email protected]代表 姜楚乔
发送时间: 2014219 22:22
收件人: [email protected]
主题: Re: [CPyUG] Re: django mysql插入一行新数据,如何获得这个新的一行数据的主键?

- 显示引用文字 -- 显示引用文字 -您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 [email protected]
要查看更多选项,请访问 https://groups.google.com/groups/opt_out0 0

姜楚乔  2月28日

Re: [CPyUG] Re: django 向mysql插入一行新数据,如何获得这个新的一行数据的主键?问题已经解决了

在 2014年2月24日 上午11:04,Wesley.Daniel <[email protected] >写道:- 显示引用文字 -


你可能感兴趣的:(生成新的内容如何获取当前生成内容的id)