Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться новичку!! Создание базы в MySQL 
:(
    Опции темы
tralfamador
Дата 14.9.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 13.9.2007

Репутация: нет
Всего: нет



У меня в учебнике ("Букварь по PHP и MySQL") в демонстрационном примере написано:

... входим в командную строку MySQL, и выполняем команды:

mysql > CREATE DATABASE mydb;
mysql> CREATE TABLE employees
( id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT,
  ......................................
 ..................................................


Нет ли в строке "DEFAULT '0' NOT NULL"  противоречия?
И надо ли у автоинкрементного поля задавать NOT NULL?

PM MAIL   Вверх
Бонифаций
Дата 14.9.2007, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



0 это не NULL. 
У автоинкрементного поля синтаксически можно задавать и default и not null но смысла в этом нет. И кстати id tinyint  - это тоже потенциально опасно. Слишкой маленький тип. Лучше все же int.



--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
muzer
Дата 15.9.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



default для auto_increment? smile выкиньте этот учебник быстрее, а лучше сожгите.

1. так нельзя
2. потому что: default - это значение, которое будет добавлено в таблицу, если в запросу insert или replace не будет указано значение, которое нужно присвоить данному полю, auto_increment - это частный случай механизма defsult значений, если в запросе не указано значение для данного поля, то ему будет присвоено значение предыдущего/максимального (точнее указанного в свойстве auto_increment для таблицы) + 1. Поэтому запись default 0 auto_increment - это противоречие, на которое и ругается mysql. А вот указание not null - это правильно и хорошо.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.2110 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.