Autor Zpráva
Pan X
Profil
Zdravím,
potřeboval bych poradit. Dneska jsem přetahoval tabulku z jednoho serveru na jinej, ale stalo se mi že při pokusu o nahrání tabulky mi phpMyAdmin ukázal tuto chybu:

MySQL hlásí:
#1071 - Specified key was too long; max key length is 1000 bytes


Mohl by mi někdo prosím poradit, co je to za chybu a jak se jí zbavím?

Zdroj:
SQL-dotaz:

CREATE TABLE  `databáze`.`tabulka` (

`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`ic` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL ,
`nazev` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL ,
`heslo` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL ,
`email_reg` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL ,
`popis` LONGTEXT CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL ,
`url` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL ,
`adresa` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL ,
`telefon` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`mobil` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`fax` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL ,
`pondeli` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`utery` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`streda` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`ctvrtek` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`patek` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`sobota` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`nedele` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL DEFAULT NULL ,
`logo` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL ,
PRIMARY KEY (  `id` ) ,
UNIQUE (
`ic` ,
`nazev`
)
) ENGINE = MYISAM 
mam
Profil *
Zmensil by som dlzku stlpcov ic a nazev kvoli unique indexu. Pretoze ten bude mat (255+255)*dajme tomu 2 pretoze ide o utf8 a tot je vecsie ako 1000. Ak to nepomoze tak neviem.
Kajman_
Profil *
V utf8 je po jeden znak občas potřeba více bytů. Mysql možná alokuje 3.

Takže na verzi, kde je omezení na 1000 bytů můžete buď zmenšit obě pole (ic,nazev) na 166 nebo změnit znakovou sadu na jednobytovou (cp1250, latin2).
joe
Profil
Tuším, že takový problém se objevuje, pokud je taky někde špatně nastavené ködování.

Máš v databázi stejné kódování - utf8?
Pan X
Profil
Jo díky už jsem to vyřešil.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: