lukaskolista
2.10.2014, 13:27:10
Dzień dobry, mam problem z inkrementacją w MySQL. Normalnie kolumna id ikrementuje się co 1, jednak czasami skacze o wiele wartości w góre, np. o 20, czy nawet 300. Co może być tego przyczyną? Bedę bardzo wdzięczny za wszystkie sugestie.
markuz
2.10.2014, 13:34:46
Przyczyną może być zły kod

Pokaż miejsce w którym dodajesz ten rekord.
lukaskolista
2.10.2014, 13:38:15
ORM::factory('Item')->set(..., ...)->create();
Kod php jest na 100% dobry, przyszedl mi do glowy pomysl z kluczem unique. Na jedna z kolumn mam nalozony wlasnie taki klucz, a jezeli wartosci sie powtarzaja to MySQL moze inkrementowac licznik a nie dodawac rekordu.
Pyton_000
2.10.2014, 13:50:14
Jak będzie błąd unique to Ci wywala Exception więc nie ma mowy o wykonaniu kolejnego zapytania, chyba że wyciszasz błąd.
Pokaż strukturę BD
lukaskolista
2.10.2014, 14:25:16
Jednak to byl problem klucza unique, teraz przed dodaniem rekordu robie najpierw select na ta kolumne i sprawdzam, czy wartosc jest juz w tej kolumnie.
nospor
9.10.2014, 08:45:16
Az zrobilem sobie test. DOdalem kolumne, z kluczem UNIQUE na jednym polu. Dodaje kolejne rekordy, autoincrement ladnie zwieksza się o jeden.
Zaczalem dodawac kolejne rekordy z duplikacją nazwy, nie dodal sie ani jeden rekord.
Zaczalem dodawac znowu normalne rekordy bez duplikacji. Autoincrement zaczał iść normalnie, bez żadnego przeskoku, o ktorym mowisz.
ALbo wiec u siebie nie dzialasz na jednej tabeli tylko na kilku i w ktorejs to wystepuje blad, albo jeszcze cos innego.
Tak wiem, problem rzekomo rozwiązany masz.
Tuminure
9.10.2014, 09:59:39
@up
Aż też zrobiłem test, bo byłem przekonany, że taki przeskok jest zawsze.
Doszedłem do wniosku, że wszystko zależy od bazy danych, silnika, czy wersji... W przypadku MySQL z InnoDB, dodanie duplikatu powoduje zwiększenie licznika. W przypadku MySQL z MyISAM duplikat nie zwiększa licznika.
Pyton_000
9.10.2014, 10:14:34
nospor
9.10.2014, 10:15:09
@Tuminure A faktycznie, nie zwrocilem uwagi, ze dzialam na MyISAM. Dla InnoDB jest jak mowisz, zwieksza licznik. Interesujące. Dobrze wiedziec
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.