Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL] tajemniczy błąd
wojzem
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 18.06.2007

Ostrzeżenie: (0%)
-----


W mojej bazie mysql co jakiś czas wyskakuje błąd w kolumnie auto_increment:

Duplicate entry '127' for key 1

Co ciekawsze, baza dostaje czkawki zawsze przy tej samej wartości auto_increment, tak jakby nie umiała policzyć do 128 winksmiley.jpg Zablokowanie ma miejsce w różnych tabelach, zawsze w kolumnie auto_increment, zawsze przy wartości 127. Nie pomaga naprawianie, optymalizowanie, przeładowywanie, ustawienia nowej domyślnej wartości auto_increment. Czasem pomaga np. zrestartowanie mysql albo zmiana sposobu składowania danych w obrębie "zepsutej" tabeli.

Czy ktoś ma pomysł, co można z tym zrobić? Dodam, że testowałem bazę na różnych komputerach i serwerach i WSZĘDZIE pojawiał się prędzej czy później ten sam błąd: Duplicate entry '127' for key 1 sad.gif
Go to the top of the page
+Quote Post
Grzyw
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Jaki masz typ pola, które jest autoinkrementowane? Ewidentnie wygląda na to, że został osiągnięty maksymalny pułap 1 bajta danych w tym polu. (w 1-bajtowym polu mieszczą się dane od 0 do 127).


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
wojzem
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 18.06.2007

Ostrzeżenie: (0%)
-----


pole id: tinyint(4), auto_increment, primary key (w każdej tabeli jest takie samo).

Ale tabela zacina się bez względu na ilość rekordów: jeżeli po zawieszeniu wykasuję wszystkie dane, to wstawia potem tylko jeden rekord o wartości auto_increment = 127, a przy próbie dodania następnego wyświetla nieszczęsny komunikat: Duplicate entry '127' for key 1.
Go to the top of the page
+Quote Post
barat
post
Post #4





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 19.05.2007

Ostrzeżenie: (0%)
-----


TINYINT - liczba jednobajtowa. Wartości od -128 do 127.

Źródło: http://www.php.rk.edu.pl/w/p/podstawy-jezyka-sql/

Chyba wszystko jasne ? ;>

Zmień typ pola na INT i będzie OK smile.gif

Ten post edytował barat 13.08.2007, 12:21:57
Go to the top of the page
+Quote Post
wojzem
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 18.06.2007

Ostrzeżenie: (0%)
-----


zmieniłem, jak na razie działa, bardzo dziękuję za pomoc!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 18:17