I´m not 100% sure about Django, but in PHP there´s a function called mysql_insert_id() in the DB-API (http://se.php.net/mysql_insert_id) - maybe Django is using something similiar.
/Nianbig On 9/23/07, Siah <[EMAIL PROTECTED]> wrote: > > > > > > My examples was faulty. Sorry. I meant after you save the object for > > the first time, that is: > > > > obj = Product(name='Apple') > > obj.save() > > > > At this point obj has an ID in it. How does it know that ID? > > > > A SQL statement similar to the following must be generated: > > insert into product_table (id, name) values(next_sequence, 'Apple'); > > > > But that SQL statement doesn't return its generated ID. Is it that > > Django first gets the next ID in sequence and then uses it in insert > > or it retrieves it in a different way. > > > > As Alex mentioned above, if there is a select statement, what could it > > be? (Select id from product_table where name='Apple') doesn't seem > > plausible. > > > > Once again, I have an AFTER trigger that sets my PKs from a different > > table and need to understand how django does it, so I can understand > > how to approach my own problem, > > > > Thanks again, > > Sia > > > > > > On Sep 23, 5:58 pm, Richard Dahl <[EMAIL PROTECTED]> wrote: > > > Actually, > > > from the db-api documentation. > > > > > > "To create an object, instantiate it using keyword arguments to the > > > model class, then call save() to save it to the database. ... > > > > > > ... Django doesn't hit the database until you explicitly call save()." > > > > > > The code: > > > obj = Product(name='Apple') > > > > > > obj.id will not be set until you either explicitly set it, or call > > > save(), at which time django will utilize the lack of a pk (among > > > other things) to determine whether or not to do an insert or update. > > > > > > -richard > > > > > > On Sep 23, 2007, at 9:38 AM, Alex Koshelev wrote: > > > > > > > > > > > > > I think that when you create Product object django inserts new row > > > > into database and retrieves with SELECT new id. > > > > > > > On 23 сент, 16:00, Siah <[EMAIL PROTECTED]> wrote: > > > >> Hi, > > > > > > >> When in a model you run something like this: > > > > > > >>>> obj = Product(name='Apple') > > > >>>> obj.id > > > > > > >> 4 > > > > > > >> I realize the first statement will turn into an insert table. But, > > > >> how > > > >> does django know of its newly assigned primary key(ID). > > > > > > >> I have a legacy database whose ID is assigned with an after > > trigger, > > > >> and am trying to understand how I can integrate them. > > > > > > >> Thanks, > > > >> Sia > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected] 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 -~----------~----~----~----~------~----~------~--~---

