Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день.
Сел изучать 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
Неактивен
Понятно, спасибо !)
Неактивен