On 11/16/06, Don Arbow <[EMAIL PROTECTED]> wrote:
>
> On Nov 15, 2006, at 9:58 PM, simonbun wrote:
> >
> > The problem with getting the last record's id and using it, is that
> > someone might have inserted yet another record while you're still
> > working on the previous one.
> >
> > For single user scenario's it's ok, or if you're using table level
> > write locking. Yet afaik, its generally a bad idea.
>
>
>
> Not sure how it works in MySQL, but in Postgres, getting the last
> inserted id is unique to the current user's (database) session. So if
> a user inserts a record into the table, then queries the sequence for
> that id, the value will always be the same, regardless if other table
> insertions have been done by other users since the first insertion.
> So the last inserted id should be thought of as the id inserted by
> this user, not the maximum id inserted by any user.

Yes, this is the functionality that i'm seeking. The id of the object
most recently
saved on a per user(connection) basis. In case of MySQL (5.0) the id
is unique to
connection. Here is the relevant portion frrom the docs

"For LAST_INSERT_ID(), the most recently generated ID is maintained in
the server on a per-connection basis. It is not changed by another
client."

Don't know about pre-5.0 versions, but i guess it is the same.


>
> The easiest way to get the last inserted id is to create an object,
> save it, then read its id directly. If you need the maximum inserted
> id, use select max(id) from table.

To do this you should be using the create method and not the save method
since the save does not return the object saved.

p = Person.objects.create(first_name="Bruce", last_name="Springsteen")
p.id

will give you the id of the object saved.
(example from the docs )


--
Manu

--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to