Thanks Craig - that explains it very clearly indeed ("textbook answer"!)
On 27 December 2010 16:50, W. Craig Trader <craig.tra...@gmail.com> wrote: > Derek ... > > Quoting from http://docs.djangoproject.com/en/1.2/topics/db/transactions/: > >> Django’s default behavior is to run with an open transaction which it >> commits automatically when any built-in, data-altering model function is >> called. For example, if you call model.save() or model.delete(), the >> change will be committed immediately. >> >> This is much like the auto-commit setting for most databases. As soon as >> you perform an action that needs to write to the database, Django produces >> the INSERT/UPDATE/DELETE statements and then does the COMMIT. There’s no >> implicit ROLLBACK. >> > > Using the Django transaction API, you can manually control transactions. > In this case, Silva must be doing something like this: > > from django.db import transaction > > @transaction.commit_manually > def viewfunc(request): > > > ... > # You can commit/rollback however and whenever you want > i = 0 > for x in data: > ... save something ... > i += 1 > if i % 1000: > > transaction.commit() > > # One last commit to persist the last batch of saves > transaction.commit() > > > I will also note that the transaction API can be (and should be) used when > you're writing management commands. > > - Craig - > > On Mon, Dec 27, 2010 at 05:29, derek <gamesb...@gmail.com> wrote: > >> Can you explain what you mean by "manual commitments" (preferably with >> a code example)? >> >> Thanks >> Derek >> >> On Dec 26, 4:38 am, Silva Paulo <psdasi...@yahoo.com> wrote: >> > OK. I found a "solution". >> > Using manual commitments after lots of insertions (ex. >1000) makes the >> massive insertion very fast (at least for my needs). >> > >> > Thanks to all who answered. >> > >> > --- On Fri, 12/24/10, Silva Paulo <psdasi...@yahoo.com> wrote: >> > >> > >> > >> > >> > >> > >> > >> > > From: Silva Paulo <psdasi...@yahoo.com> >> > > Subject: Massive insertion of records >> > > To: "newbie" <django-users@googlegroups.com> >> > > Date: Friday, December 24, 2010, 6:26 PM >> > > I need to do a massive insertion of >> > > records in two tables "connectd" by "foreignkey". Is there a >> > > way, using the Django db API, to do it. e=Foo(...);e.save() >> > > seems too slow. >> > >> > > Thanks >> > >> > > >> > >> > > -- >> > > You received this message because you are subscribed to the >> > > Google Groups "Django users" group. >> > > To post to this group, send email to django-us...@googlegroups.com. >> > > To unsubscribe from this group, send email to >> > > django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> >> . >> > > For more options, visit this group athttp:// >> groups.google.com/group/django-users?hl=en. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To post to this group, send email to django-us...@googlegroups.com. >> To unsubscribe from this group, send email to >> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> >> . >> For more options, visit this group at >> http://groups.google.com/group/django-users?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-us...@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.