> > > One simple question... AFAIK I can specify value for an autoincrement
> > > primary key (int) when inserting a record like this:
> > >
> > > INSERT INTO `tablename` (`id`, `name`) VALUES (1, 'test')
> > >
> > > But it doesn't work for id = 0. Why?
> > >
> > > I would like to use some primary key values for special purpose, e.g.
id
> > 0
> > > means root/default record and so on.
> > > Is that recommended? Are there any alternative ways?
> >
> > Autoincrement starts from 1. That is the way it is, and cannot, I think,
> > be changed.
>
> Yes, it starts from 1, but concrete value CAN be changed to 0 manually.
>
> Maybe it is better to ask: "Why can I set autoincrement primary key to 0
but
> cannot do this using INSERT statement?"
>
> >
> > I would advise against using autoincrement keys for "special" uses. This
> > is muddling two different functions into one. Remeber that primary keys
> > must be unique: if, at some time, you need to have more than one of a
> > "special" value, you will be in trouble.
>
> Sure, but the idea was to use 0 for root category or "root" access. It
seems
> to be reasonable at least.

Then again... this is only an non-business-meaning ID value. If it's 0
or 100 or 1293492342 -> it doesn't matter at all.

> > The function of autoincrement
> > keys is to assign unique record identifiers. Do not mix this with other
> > tasks.

The meaning of auto-inc values is to make people lazy.

With regards,

Martijn Tonies
Database Workbench - developer tool for InterBase, Firebird, MySQL & MS SQL
Server
Upscene Productions
http://www.upscene.com


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to