Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Создание таблицы


Автор: devmstr 30.1.2007, 20:26
Я новичек в MySql. Смотрю по двум книгам, но не могу понять, в чем ошибка запроса?
Код

mysql> Create Table Books('ID' INT(4) UNSIGNED NOT NULL AUTO_INCREMENT, 'Autor'
CHAR(255), 'Name' CHAR(255), 'ISBN' CHAR(10), 'Publisher' Char(50), 'Year' SMALL
INT(3) UNSIGNED PRIMARY KEY('ID') INDEX('Name'));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ''ID'
INT(4) UNSIGNED NOT NULL AUTO_INCREMENT, 'Autor' CHAR(255), 'Name' CHAR(255' at
line 1

Помогите пожайлуста...

Автор: Всемогущий 30.1.2007, 20:38
Код

Create Table Books(
`ID` INT(4) UNSIGNED NOT NULL AUTO_INCREMENT,
`Autor` CHAR(255),
`Name` CHAR(255),
`ISBN` CHAR(10),
`Publisher` Char(50),
`Year` SMALLINT(3) UNSIGNED, 
PRIMARY KEY(`ID`),
INDEX(`Name`)
);

Автор: muzer 30.1.2007, 21:16
1. Неправильные кавычки
2. Лишний пробел в SMALL INT, нужно SMALLINT
3. Пропущены запятые перед определением ключей
Как и написал Всемогущий.

Остальное формально правильно, но:
- нехороший индекс по полю Name, лучше ограничить его ~10 символами.
- почему char, а не varchar? char больше нужен для фуллскана и более вероятного восстановления после сбоя, но первое может быть (и лучше бы так и было) исключено поиском только по индексам, второе исключается периодическими бэкапами.

Автор: devmstr 30.1.2007, 22:33
Всемогущий
Большое спасибо за пример!


muzer
Большое спасибо за объяснения. Буду знать. 

А еще глупый вопрос, а как ставить "прави льные кавычки"? На клаве не нашел, использую вставку smile

Автор: Всемогущий 30.1.2007, 22:44
Ё на английской клавиатуре

Автор: devmstr 30.1.2007, 22:46
Всемогущий
Аааааа. Ну-ну, ну.
Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)