Hallo dedlfix,
Danke dir für deine Erklärung.
Int = 4
255 * 3 = 765
100 * 3 = 300
zusammen = 1069
Ja, da werden für den Index immer 3 Byte pro Zeichen reserviert.
OK, dann ist es klar.
Du könntest den Index kürzer machen. Bei einem CREATE INDEX kann nach dem Spaltennamen in Klammern eine Längenangabe folgen.
OK, ich habe nun die Varchar beide auf 100 gesetzt (das reicht)
dann klappt auch der Index.
ALTER TABLE `option` ADD UNIQUE (
`TypeID` ,
`Open` ,
`OpenValue`
);
Aber angenommen ich brauche volle 255 für eine Spalte oder sogar für beide.
Dann könnte man den Prefix so kürzen?
ALTER TABLE option
ADD UNIQUE (
TypeID
,
Open(100)
,
OpenValue(100)
);
Dann könnte man trotzdem einen String mit 255 Zeichen einfügen?
Würde dann der Index aber nur 100 Zeichen berücksichtigen?
Ich frage deshalb weil ich einen Insert IGNORE überlege der alle 3 Spalten berücksichtigt. Dann wäre ja wichtig das alle Zeichen überprüft werden.
vielen Dank und viele Grüße
hawk