Sounds like you need an atomic operation. Instead of doing a SELECT, do an UPDATE and then check the affected rows, such as:
UPDATE table SET flag = 1 WHERE flag = 0; Then check if the operation succeeded. Cheers, Dan On Sep 30, 11:38 am, gustavo Cardoso <gnasce...@gmail.com> wrote: > Acctually, > > I need to do a SELECT in a table. In this table has a flag field. if the > flag field has 0 so I can update de flag field to 1. > In other words I need to do a SELECT by verifing if the flag field is 0. And > after, I can update to 1 the flag field. > > But the problem is: More than one access occurr in this table. > > Imagine A and B (two users) accessing this table. > A do a SELECT. > B do a SELECT. > A verify that the flag field is 0. > B verify that the flag field is 0. > A UPDATE to 1 the flag field. > B UPTADE to 1 the flag field. (Wrong!! B couldn't set the flag to 1 > because the flag already was configured to 1.) > > But B must to wait for A. A need to put the flag in 0 again. So B can put > the flag in 1 and use the datas. > > is there a way to resolve this problem in django?? Can put some example? > > thanks > > On Wed, Sep 30, 2009 at 10:05 AM, Kristaps Kūlis > <kristaps.ku...@gmail.com>wrote: > > > > > > > Create locks and store them at cache as keys. > > Or implement counter as cache.incr('users_online') > > > On Wed, Sep 30, 2009 at 3:52 AM, Nan <ringe...@gmail.com> wrote: > > >> Any particular reason you can't just use User.objects.count() ? > > >> On Sep 29, 7:16 pm, gustavo Cardoso <gnasce...@gmail.com> wrote: > >> > Hello Folks, > > >> > I need to implement a Counter. > >> > One variable to store the number of users in my site. > >> > This variable can't be access in the same time for more than one user. > >> > How I do this in django. How I create a method that only one user can > >> access > >> > in the same time? > >> > Is there some API to lock and release that variable? > >> > Thanks! > > >> > -- > >> > Gustavo Nascente Cardoso > >> > Ciência da Computação - UFES > > -- > Gustavo Nascente Cardoso > Ciência da Computação - UFES --~--~---------~--~----~------------~-------~--~----~ 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 django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---