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
-~----------~----~----~----~------~----~------~--~---

Reply via email to