CREATE TABLE IF NOT EXISTS `qdz76_piteachers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`teacher_name` varchar(250) NOT NULL,
`teacher_alias` varchar(250) NOT NULL,
`teacher_role` varchar(50) NOT NULL,
`image_folderlrg` int(11) NOT NULL,
`teacher_image_lrg` varchar(250) NOT NULL,
`teacher_email` varchar(100) NOT NULL,
`teacher_website` varchar(250) NOT NULL,
`teacher_description` text NOT NULL,
`published` tinyint(3) NOT NULL,
`ordering` int(11) NOT NULL,
`teacher_view` tinyint(3) NOT NULL,
`checked_out` tinyint(1) NOT NULL DEFAULT '0',
`checked_out_time` datetime DEFAULT NULL,
`user` int(11) NOT NULL,
`language` char(7) NOT NULL DEFAULT '*',
`featured` tinyint(3) NOT NULL DEFAULT '0',
`metakey` text NOT NULL,
`metadesc` text NOT NULL,
`lastname` varchar(250) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=30 ;
Я новичок в MySQL и прочитал эту страницу http://dev.mysql.com/doc/refman/5.5/en/create-table.html, это выглядит как AUTO_INCREMENT = 30
в table_option
разделе, но я до сих пор не понимаю, что AUTO_INCREMENT = 30
здесь означает. Означает ли это, что все поля int имеют auto_increment как 30?Какова цель установки auto_increment в 30 при создании таблицы?
Нет, это похоже на свалку существующей таблицы. Число 30 - это последний идентификатор автоматического увеличения, используемый в этой таблице. – e4c5
Это из файла .sql, который был экспортирован из существующей таблицы, теперь, когда вы упомянули об этом, я заметил, что у него есть 30 записей. Но как вы узнали, что это «как свалка существующей таблицы»? И если мы игнорируем предысторию, как «AUTO_INCREMENT = 30» влияет на потенциально созданную таблицу? – shenkwen
Ну, заявление о создании, имеющее параметр AUTO_INCREMENT = x, обычно является признаком того, что оно произошло из дампа. Имея это в виду, когда вы снова вставляете данные в эту таблицу, следующий номер автоинкремента будет равен 31. Это предотвратит столкновение на случай, если вы решите также импортировать старые данные таблицы (как правило, это так) – e4c5