On Thu, Nov 11, 2010 at 6:41 PM, Tab Atkins Jr. <[email protected]>wrote:
> On Thu, Nov 11, 2010 at 4:20 AM, Jeremy Orlow <[email protected]> wrote: > > What would we do if what they provided was not an integer? > > The behavior isn't very important; throwing would be fine here. In > mySQL, you can only put AUTO_INCREMENT on columns in the integer > family. > > > > What happens if > > the number they insert is so big that the next one causes overflow? > > The same thing that happens if you do ++ on a variable holding a > number that's too large. Or, more directly, the same thing that > happens if you somehow fill up a table to the integer limit (probably > deleting rows along the way to free up space), and then try to add a > new row. > > > > What is > > the use case for this? Do we really think that most of the time users do > > this it'll be intentional and not just a mistake? > > A big one is importing some data into a live table. Many smaller ones > are related to implicit data constraints that exist in the application > but aren't directly expressed in the table. I've had several times > when I could normally just rely on auto-numbering for something, but > occasionally, due to other data I was inserting elsewhere, had to > specify a particular id. > This assumes that your autonumbers aren't going to overlap and is going to behave really badly when they do. Honestly, I don't care too much about this, but I'm skeptical we're doing the right thing here. J
