Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2010, 10:49   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию Один момент в создании таблицы в MySQL

День Добрый, Друзья ))(3d))
Собственно, читаю учебник и вижу такой вот пример кода, который создаёт таблицу -
Код:
create table customers
( customerid int unsigned not null auto_increment primary key , name char(30) not null);
далее следуют комментарии -
Цитата:
PRIMARY KEY после имени столбца определяет, что этот столбец является первич-
ным ключом для таблицы. Данные в этом столбце должны быть уникальными. MySQL автоматически индексирует этот столбец. Заметьте, что ранее, при использовании его с customerid в таблице customers, без AUTO_INCREMENT не обошлось. Автоматический индекс по первичному ключу сберегает индекс, требуемый AUTO_INCREMENT.
А вот и мой вопрос - что значит -
Цитата:
Автоматический индекс по первичному ключу сберегает индекс, требуемый AUTO_INCREMENT.
?
Заранее благодарю )
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 14.09.2010, 11:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Заумная фраза. По-моему автор имел ввиду что при автоинкременте нет смысла самостоятельно задавать ручками значения ключевого поля для новой записи, допуская при этом ошибки...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.09.2010, 11:18   #3
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Это значит, что если в таблице есть столбец AUTO_INCREMENT, кстати, он может быть только один, то он должен быть индексирован. Но в случае, описанном в книге, столбец автоматически индексируется, так как ему указан PRIMARY KEY.

Ответ на вопрос: нам не нужно его индексировать, потому что он уже проиндексирован.
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 14.09.2010, 12:07   #4
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
если в таблице есть столбец AUTO_INCREMENT, кстати, он может быть только один, то он должен быть индексирован.
ага. но только там.....вообще так -
Цитата:
AUTO_INCREMENT — специальная возможность MySQL, которую можно задей-
ствовать в числовых столбцах. Если при вставке строк в таблицу оставлять такое поле
пустым, MySQL автоматически генерирует уникальное значение идентификатора. Это
значение будет на единицу больше максимального значения, уже существующего в
столбце. В каждой таблице может быть не больше одного такого поля. Столбцы с
AUTO_INCREMENT должны быть проиндексированными.
PRIMARY KEY после имени столбца определяет, что этот столбец является первич-
ным ключом для таблицы. Данные в этом столбце должны быть уникальными. MySQL
автоматически индексирует этот столбец. Заметьте, что ранее, при использовании его
с customerid в таблице customers, без AUTO_INCREMENT не обошлось. Автоматичес-
кий индекс по первичному ключу сберегает индекс, требуемый AUTOJNCREMENT.
то есть получается что - PRIMARY KEY делает столбец обязательным для индексации, а AUTO_INCREMENT - проставляет номера...
а вот,quit
думает наоборот )) не пойму )
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 14.09.2010, 12:33   #5
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

ведро_компота, ты не правильно понял, я просто пояснил значение цитаты из твоего вопроса:
Цитата:
Автоматический индекс по первичному ключу сберегает индекс, требуемый AUTO_INCREMENT.
Слова теории тут не к чему, Америка давно открыта уже.

Цитата:
PRIMARY KEY делает столбец обязательным для индексации, а AUTO_INCREMENT - проставляет номера...
Не просто обязательным, СУБД его индексирует! А AUTO_INCREMENT - проставляет номера и при этом необязательно, что он будет PRIMARY KEY, соответственно в этом случае его надо бы проиндексировать.
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 14.09.2010, 13:56   #6
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

quit
, воистину я
Цитата:
не правильно понял
спасибо за ответ )) Теперь понял ))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
авт. перенос данных из нескольких столбцов одной таблицы в один столбец другой таблицы A_ALL Microsoft Office Access 7 24.08.2009 21:13
Необходима помощь в создании таблицы Tabasco7 Microsoft Office Excel 7 05.08.2009 15:56
Ошибка при создании таблицы LAGOX SQL, базы данных 1 28.03.2009 00:46
Проблема в создании таблицы *.mkv Microsoft Office Excel 2 27.02.2009 00:38
хотелось бы уточнить один момент... selestenka Помощь студентам 4 04.01.2009 20:14