|  | 
Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день.
Сел изучать MySQL  ... 
у меня есть вопрос...
создаем новую таблицу:
CREATE TABLE IF NOT EXISTS `admin` (
  `admid` int(11) unsigned NOT NULL auto_increment,
  `adlog` varchar(25) NOT NULL default '',
  `adpwd` varchar(32) default NULL,
  `admail` varchar(50) NOT NULL default '',
  `adlast` int(11) NOT NULL default '0',
  `permiss` text NOT NULL,
  PRIMARY KEY  (`admid`),
  KEY `adlog` (`adlog`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
все вроде понятно, кроме двух моментов:
admid` int(11) unsigned NOT NULL auto_increment   - здесь, почему именно (11) ???? что это? 
и здесь
AUTO_INCREMENT=2 ; почему 2 ???
нигде не могу найти ответ(
Спасибо.
Отредактированно enot (13.02.2010 19:51:31)
Неактивен

В данном случае 11 это ширина поля при отображении.
11, наверное, пишут для того, чтобы не обрезалось любое значение, которое может принимать величина типа INT.
В вашем случае писать 11 совершенно не обязательно.
Для иллюстрации выполните следующий код:
Неактивен
Спасибо!
другими словами в этой таблице может быть 10^11 записей ? т.е. 10^11 различных ключей ?
 
а что значит AUTO_INCREMENT=2 ?
Неактивен

Нет, поле int требует для хранения 4 байта, значит 2^32 записей. А ширина в 11 символов достаточна, чтобы любое число из данного диапозона не обрезалось.
AUTO_INCREMENT=2 означает, что нумерация поля `admid` начнется с 2, если не будет явно указано другое значение при добавлении.
http://dev.mysql.com/doc/refman/5.0/en/ … table.html
Неактивен
Понятно, спасибо !)
Неактивен