PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql - key lenght definieren?


sun-man
2006-05-05, 10:55:43
Hi,

vielleicht kann mir mal jemand helfen. Ich hocke an nem Wikiupdate auf eine neuere Version. Leider ist das Grundsystem alles andere als aktuell, aber es funktioniert.
Beim einspielen eines Dumps bricht Phpmyadmin mit einem "Key Lenght" Fehler ab. Dieser solle nicht über 500 liegen.
Es geht nur um diesen Eintrag:
-- Tabellenstruktur für Tabelle `wik_job`
--

DROP TABLE IF EXISTS `wik_job`;
CREATE TABLE IF NOT EXISTS `wik_job` (
`job_id` int(9) unsigned NOT NULL,
`job_cmd` varchar(255) NOT NULL default '',
`job_namespace` int(11) NOT NULL,
`job_title` varchar(255) binary NOT NULL,
`job_params` blob NOT NULL,
PRIMARY KEY (`job_id`),
KEY `job_cmd` (`job_cmd`,`job_namespace`,`job_title`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;


Wenn ich diese in
-- Tabellenstruktur für Tabelle `wik_job`
--

DROP TABLE IF EXISTS `wik_job`;
CREATE TABLE IF NOT EXISTS `wik_job` (
`job_id` int(9) unsigned NOT NULL,
`job_cmd` varchar(240) NOT NULL default '',
`job_namespace` int(11) NOT NULL,
`job_title` varchar(240) binary NOT NULL,
`job_params` blob NOT NULL,
PRIMARY KEY (`job_id`),
KEY `job_cmd` (`job_cmd`,`job_namespace`,`job_title`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

ändere, also die 255 als 240 definiere, klappt der Import.
Ich bin ehrlich genug um zu sagen das ich nicht wirklich weiß was diese 255 definiert, also welches Feld oder was auch immer. Aber scheinbar werden diese Zahlen zusammengezählt und wenn da >500 raus kommt ist Ende Gelände.
Sorry für das etwas simple ran gehen ans Problem, ich kann es nicht anders ;)

Kann man diesen "Key Lenght" innerhalb MySQL irgendwie ändern bzw was für Auswirkungen hat das ändern von "255" auf "240" ?

Thx

HellHorse
2006-05-05, 12:06:11
Mogul[/POST]']
Kann man diesen "Key Lenght" innerhalb MySQL irgendwie ändern bzw was für Auswirkungen hat das ändern von "255" auf "240" ?
Ich habe mal etwas gesucht. So wie es aussieht ist KEY ein Synonym für INDEX. Und ja bei INDEX kann man diese Länge einstellen und die Auswirkung sieht nicht sonderlich besorgniserregend aus (ausser die Werte stimmen auf den ersten 240 Characters überein):
http://dev.mysql.com/doc/refman/5.0/en/create-index.html

sun-man
2006-05-05, 12:07:00
danke dir

HellHorse
2006-05-05, 12:10:57
http://sunsite.mff.cuni.cz/MIRRORS/ftp.mysql.com/doc/en/MyISAM.html
The following is new in MyISAM:
.....
Maximum key length is 500 bytes by default (can be changed by recompiling). In cases of keys longer than 250 bytes, a bigger key block size than the default of 1024 bytes is used for this key.