1) the field must be of type int, tinyint, smallint or bigint
2) the field cannot contain any data that breaks the auto_increment rules
3) the field must be tagged as not null
4) the field must be an index
5) there can only be one auto_increment field per table
I recommend creating a new field that is auto_increment, then drop the old field and rename the new field to the old field's name. If you have any foreign keys that point to this field you will have to make sure they are updated after you add the new field and before you drop the old field.