Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   ошибка (http://forum.oszone.net/showthread.php?t=46158)

E-mail 03-03-2005 01:40 303087

ошибка
 
SQL-запрос:

CREATE TABLE `ut_category` (

`CategoryID` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`Name` VARCHAR( 250 ) NOT NULL ,
`ItemName` VARCHAR( 250 ) NOT NULL ,
`OrderIndex` INT( 11 ) DEFAULT '0' NOT NULL ,
UNIQUE (
`CategoryID` ,
`Name` ,
`ItemName` ,
`OrderIndex`
),
FULLTEXT (
`Name` ,
`ItemName`
)
) TYPE = MYISAM
Ответ MySQL:

#1071 - Specified key was too long. Max key length is 500

vadimiron 03-03-2005 02:10 303094

Вы указали в качестве UNIQUE все четыре атрибута и если подсчитать сумму их длин, то получается 522
Уникальность (UNIQUE) обозначает, что в никаких двух строках значение одного атрибута не может быть равно, то есть если пояснить на вашей схеме,
CategoryID, Name, ItemName и OrderIndex должны содержать только разные значения, что я думаю не соответствует действительности, например наверняка можно продать один вид товара дважды => значения не уникальны
В строке ошибки говориться Specified key, а он состоит как раз из уникальных атрибутов (вообще это не обязательно, но если человек указывает атрибут как уникальное, то он видимо автоматически идёт в состав ключа)
Для правильности таблицы укажите лучше одно поле уникальным и соответственно ключом всей таблицы, например номер заказа всё время может быть уникальным (каждый раз новое число), при этом мы можем продавать одинаковые товары, но под разными номерами заказов
Если хотите могу помочь организовать все таблицы и связи между ними на теоритическом уровне (я просто последний семестр только этим и занимался в своём уни :) )

E-mail 03-03-2005 22:16 303334

Вложений: 1
vadimiron
дело в том что я просто хотел скопировать базу:)
она уже есть и работает, но я хотел скопировать ее вточности себе на комп.


Время: 03:25.

Время: 03:25.
© OSzone.net 2001-