Originally Posted by Old Pedant
Why can't you use 0 with MEDIUMINT UNSIGNED???
Oh, I see...because you can't have a PRIMARY KEY with value 0 in that case.
I had a similar problem, but my primary key field was signed, not unsigned, so I just used -1 as my "catch all" and that you can do. I don't know why MySQL treats zero as "poison".
Hate to say it, but under the circumstances I'd go with the "1 means not a member" hack.
I did some checking around, and apparently while if you try and INSERT a NULL or 0 MySQL will use that as a cue to use the next number in the AutoIncrement sequence, you *can* run and UPDATE and change the Int AutoIncrement from <whatever> to "0".
So I guess that gives me what I want, although I must confess being able to INSERT a NULL and not have a dummy Member record of "0" would be best.