webForumDet fria alternativet

Felmeddelande när jag kör SQL fråga

Databaser & SQL

5 svar · 275 visningar · startad av haider

Medlem sedan jan. 2003956 inlägg
Frågan#1

Felmeddelandet lyder enligt: “#1071 - Specified key was too long; max key length is 1000 bytes”

Och så här ser frågan ut:

CREATE TABLE `varukorg` (

`id` varchar(64) NOT NULL default '',

`description` varchar(255) NOT NULL default '',

`price` double default NULL,

`weight` double default NULL,

`session_autoid` int(11) NOT NULL default '0',

`internal_id` varchar(128) NOT NULL default '',

`amount` int(11) default '1',

`vat` double default NULL,

`universal1` varchar(128) default NULL,

`universal2` varchar(128) default NULL,

`universal3` varchar(128) default NULL,

PRIMARY KEY (`description`,`session_autoid`,`internal_id`)

) TYPE=MyISAM;

Vad gör jag fel?

Medlem sedan nov. 20014 054 inlägg
#2

Hmm har ingen som helst koll!

Har då inga problem med att skapa denna tabell på min MySQL-server.

Vilken version på MySQL? Min är 4.0 och det funkade!

Så jag vet inte..

Medlem sedan jan. 2003956 inlägg
#3

Kör version 5.0.19

Menar du att du testade på din?
Kan det vara nån inställning nånstans, som inte tillåter nån viss key length?

Medlem sedan mars 20025 907 inlägg
#4

Tråden flyttas från PHP-forumet till SQL.

Ska verkligen description-fältet vara i primary key?

Medlem sedan maj 2005562 inlägg
#5

Din key är för lång .. max längd är 1000bytes ..
Verkar som du har utf8 teckenkodning => varje tecken = 3bytes .. dvs 333 tecken är max som key, din är längre varför du får det problemet.
Testa vilket charset du har med mysql_client_encoding().
En lösning är att du kortar ner längden på dina kolumner som du har key på lr byter till latin1 charset.

/red typo.

Medlem sedan jan. 2003956 inlägg
#6

jag får undersöka närmare med den som ligger bakom koden.

När jag ändrade till 204 så funkade det.
Det var uppenbarligen längden som strulade. Jag vet inte om jag ska byta ut utf8, eller om jag ska nöja mig med 204 i längd.

Hur tolkar jag 204 tecken - är det så många tecken som ett visst fält får lov att ha?

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)