Thanks a lot Massimo :) The problem with this solution is that i have a table has member_id as foreign key and by this solution that data will be lost.
so i searched for a solution on controller level. Thanks On Apr 4, 3:31 pm, Massimo Di Pierro <[email protected]> wrote: > how about > > db.define_table("member", > SQLField("membership_id", "id"), > SQLField("first_name", "string", notnull=True) > ) > > and "membership_id" would be your "id" field? > > On Apr 4, 8:03 am, Neveen Adel <[email protected]> wrote: > > > Thanks Anthony for your reply. > > > The table already have an old data so i can't remove the column id or > > change in the database structure. > > > Is there another solution in controller level not database level? > > > Thanks in Advance > > > On Apr 4, 2:54 pm, Anthony <[email protected]> wrote: > > > > Your table already includes an 'id' field by default, which is an > > > auto-increment integer field starting at 1. Why do you need a separate > > > 'membership_id' field? If it's a legacy database and you need the name of > > > the 'id' field to be 'membership_id', you can simply define the field type > > > as 'id' > > > (seehttp://web2py.com/book/default/chapter/06?search=auto-increment > > > ). > > > > Also, you should use Field() instead of SQLField() -- they're both the > > > same, > > > but the latter has been deprecated in favor of the former. > > > > Anthony > > > > On Monday, April 4, 2011 8:35:00 AM UTC-4, Neveen Adel wrote: > > > > Hello, > > > > > I have the following table: > > > > > db.define_table("member", > > > > SQLField("membership_id", "integer",notnull=True), > > > > SQLField("first_name", "string", notnull=True) > > > > ) > > > > > and i want the membership id to be incremented automatically. > > > > > the way i used : > > > > > every time i inserted it , i select the max membership_id and adding > > > > one on its value as: > > > > > result=db.executesql("select max(membership_id) from member") > > > > record=result[0] > > > > if record[0]: > > > > next_membership_id = record[0]+1 > > > > else: > > > > next_membership_id=1 > > > > form.vars.membership_id=next_membership_id > > > > > But this solution allows duplicates?? > > > > > could anyone tell me what is the perfect solution? > > > > > Thanks in Advance

