Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] Problem z unikalnymi kluczami - po usunięciu wierszy, "Następne Autoindex" jest błędne
konrados
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Witam,

Ja ciągle mam głupie problemy z mysql'em.

Stworzyłem otóż tabelę: id, coś_tam. Gdzie id jest unikalne (postawiony unique key). Na początku dodawanie rekordów nie stanowiło problemów, ale w pewnym momencie stwierdziłem, że wszystko trzeba od początku zacząć - zlikwidowałem wszystkie rekordy (z wyjątkiem jednego) i .... teraz mówi mi o błędzie "Duplicate entry '127' for key 1" gdy tylko próbuję dodać nowy rekord. Po małym śledztwie widzę, że w phpmyadmin "Następne Autoindex" jest równe temu które ostatnio dodałem, czyli się nie zwiększa. Krok po kroku:

"Następne Autoindex" jest równe 127, a więc dodaję nowy rekord, jego ID == 127. OK. Ale po dodaniu tegoż rekordu "Następne Autoindex" wciąż się równa 127, więc gdy próbuję dodać drugi rekord widzę wspomniany błąd - bo mysql znowu próbuje nadać drugiemu rekordowi id==127 no i jest błąd "duplicate entry".

No i pytanie - co ja mam teraz zrobić? Da się jakoś powiedzieć temu myslq'owi, że "next autoindex" ma być inne? I w ogóle, czemu takie rzeczy mi się ciagle zdarzają, to jest typowe dla myslq'a ?

Ten post edytował konrados 15.04.2008, 13:08:42
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




a jakiego typu jest to pole ? tinyint? bo wlasnie tiny int ma zakres max = 127 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (a konkretnie -127 : 127)

edit: jesli zresetowales tabele to mozesz i zresetowac jest auto_increment:
http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
  1. ALTER TABLE t2 AUTO_INCREMENT = value;
Go to the top of the page
+Quote Post
konrados
post
Post #3





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Kurde... zgadza się, myśłałem, że tinyint to jest 0-65535.... Dzięki!
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




na przyszlosc nie mysl tylko sprawdz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
manual naprawde nie boli. Szybciej jest zajrzec do manuala niz zakladac temat na forum (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
konrados
post
Post #5





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


No tak, zawsze wpierw sprawdzam - ale czasem po prostu nie wiadomo co sprawdzić. Trzeba wiedzieć gdzie może być problem, a w tym celu trzeba mieć jakaś wiedzę, tak jak Wy.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.12.2025 - 15:32