webForumDet fria alternativet
Logga in / Bli medlem

Query Failed Duplicate Entry '255' for key 1

Databaser & SQL

7 svar · 193 visningar · startad av Mungo

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

Jag får plötsligt ovanstående fel vid insert i en databas som har funkat i veckor. Vad har hänt? Känner nån till vad detta ens betyder? Tacksam för all hjälp.

Medlem sedan dec. 200012 464 inlägg
#2

Du försöker göra insert på en post som redan finns i primärnyckel eller uniqueconstraint.

Medlem sedan jan. 2000372 inlägg
#3

Ja, det visade sig att TINYINT(3) inte var stort nog och att 255 då var maxvärde på id-kolumnen så nästa post fick samma värde och därmed vart det krock.

Jag ökade id till MEDIUMINT(5) utan att egentligen veta vad skillnaden är men det funkar bra nu. Puh. :)

Kanske du eller nån annan kan svara på vad skillnaden är mellan TINYINT OCH MEDIUMINT och BIGINT och då också vad siffran efter gör för skillnad?

Att TINYINT(3) skulle ha 255 som maxvärde känns helt ologiskt för min del...?

Medlem sedan dec. 200012 464 inlägg
#4

Tinyint använder 1 byte för att lagra data (0-255). 3:an är bara displaylängd så den är helt irrelevant.

smallint är 2 byets
Mediumint är 3 bytes
int är 4 bytes
bigint är 8 bytes

Medlem sedan jan. 2000372 inlägg
#5

Tack.

Displaylängd? Vad menas med det?

Medlem sedan dec. 200012 464 inlägg
#6

Displaylängd = antal positioner när värdet visas i mysql.

Medlem sedan juni 20019 024 inlägg
#7

Så att ange 3, exempelvis Tinyint(3), är helt meningslöst? :q

Medlem sedan dec. 200012 464 inlägg
#8

Jo, jag har svårt att överhuvudtaget svårt att förstå varför möjligheten finns.

267 ms totalt · 4 externa anrop · v20260731065814-full.05830320
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)