Problém s MySQL --> Duplicate entry '127' for key 1

Dobrý den,
mám velký problém s databází. Normálně jsem přidával příspěvky do mého systému, když se to zastavilo u id(auto_increment, primary_key) 127. Založil jsem si novou databázi, znova jsem udělal tabulku, nic. Vždy ta samá chyba:
Duplicate entry '127' for key 1
Opravdu už nevím co s tím. A navíc, když jsem zálohoval tabulku, než jsem si smazal, všechny háčky v příspěvcích se mi hodili do otazníku v karu. :( Ví někdo, co s tím? Můžu připojit i strukturu, jestli Vám to pomůže.

Díky
CREATE TABLE `threads` (
`quest` tinyint(5) NOT NULL,
`text` text collate latin2_czech_cs NOT NULL,
`datum` datetime NOT NULL,
`autor` varchar(50) collate latin2_czech_cs NOT NULL,
`sepot` tinytext collate latin2_czech_cs NOT NULL,
`ohodnoceni` tinyint(3) NOT NULL,
`id` tinyint(5) NOT NULL auto_increment,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=128 DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs PACK_KEYS=0 AUTO_INCREMENT=128 ;
Strukturu ani nepotřebuji, pač jsem to poznal už z tvého popisu. Ale když jsi tu strukturu dodal, tak se má teorie jen potvrdila.

Zvolil jsi špatný datový typ u sloupce id. Každý datový typ není nekonečný a mají svá omezení. Typ tinyint má rozsah pouze 8 bitů (do 255). Ale jelikož není definován unsigned, pak je rozsah pouze do 127. Víc to nevezme.
Tudíž ve tvém případě auto_increment končí na čísle 127 a při pokusu o další vložení se snaží uložit záznam s id 127. Ten už ale v databázi existuje, a tak zahlásí onu chybu "Duplicate entry '127' for key 1".

Řešení je jednoduché. Zvolit typ s delším rozsahem. Běžně se používá klasický typ - int. Ten má rozsah až do 2147483647 (v unsigned až 4294967295).


A k tomu doplňujícímu dotazu. Aby databáze správně pracovala s kódováním, tak se musí také správně nastavit. Nestačí jen definovat kódování u řetězových typů. Musíš také říci, že takové kódování chceš použít. A to se provádí tak, že před jakýmkoli volání SQL, nejlépe hned po připojení a nastavení databáze, zavoláš SQL: SET NAMES latin2 COLLATE latin2_czech_cs;
Ovšem pozor. Vstupní řetězec musí také odpovídat danému kódování, jinak se uloží slátanina.
Ano. Ten problém s id jsem uvedomi uz vcera, i tak mnohokrát děkuji. ;)
A tu radu s kódováním hned na pc vyzkouším :) diky moc