2015-09-22 1 views
0
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 при создании таблицы?

+0

Нет, это похоже на свалку существующей таблицы. Число 30 - это последний идентификатор автоматического увеличения, используемый в этой таблице. – e4c5

+0

Это из файла .sql, который был экспортирован из существующей таблицы, теперь, когда вы упомянули об этом, я заметил, что у него есть 30 записей. Но как вы узнали, что это «как свалка существующей таблицы»? И если мы игнорируем предысторию, как «AUTO_INCREMENT = 30» влияет на потенциально созданную таблицу? – shenkwen

+1

Ну, заявление о создании, имеющее параметр AUTO_INCREMENT = x, обычно является признаком того, что оно произошло из дампа. Имея это в виду, когда вы снова вставляете данные в эту таблицу, следующий номер автоинкремента будет равен 31. Это предотвратит столкновение на случай, если вы решите также импортировать старые данные таблицы (как правило, это так) – e4c5

ответ

0

На самом деле, когда вы готовите дамп с сервера или получить структуру таблицы из PHPMyAdmin, то он обеспечивает вам auto_increment значения в соответствии с существующей таблицей значений, так что вы будете получать его как 30.

Всякий раз, когда вы создаете новую таблицу, затем нет необходимости упоминать auto_increment (если нет особых причин), поскольку он автоматически начинается с 1.

По какой-то определенной причине вам нужно сообщить mysql, что мое значение auto_increment должно начинаться с этого номера, в этом случае вам нужно указать его в синтаксисе создания таблицы.

Смежные вопросы