Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Nie działa 'optymalizacja tebeli' w bazie
Forum PHP.pl > Forum > Przedszkole
nitro11
W tabeli klucz główny to 'id' auto increment.
Czasem zdarza się, że muszę usunąć kilka rekordów z końca ale wtedy jak dodaje kolejne robi się dziura
w id bo kolejne rekordy maja id wyższe niż te które usunąłem a chciałbym żeby była ciągłość id tzn jak skasuje
jakies rekordy to id dla kolejnego jest kolejnym po rekordzie ostatnim nieskasowanym.

Zawsze w takim wypadku używałem opcji 'optymalizuj tabele' i nasteny autoindex byl taki jak trzeba
a teraz ta opcja w ogole nie dziala.

Co może być powodem ?
nospor
Zacznijmy od tego, że masz błąd logiczny skoro przeszkadzają ci dziury w ID winksmiley.jpg

Co do problemu:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Cytat
ALTER TABLE t2 AUTO_INCREMENT = value;

You cannot reset the counter to a value less than or equal to any that have already been used. For MyISAM, if the value is less than or equal to the maximum value currently in the AUTO_INCREMENT column, the value is reset to the current maximum plus one. For InnoDB, if the value is less than the current maximum value in the column, no error occurs and the current sequence value is not changed.
nitro11
Nie tyle mi to przeszkadza co testuje pewne skrypty i często już na początku robią mi dziury
a nie chce zęby pierwsze id zamiast 1 bylo 324627 dlatego stosowałem optymalizację i pomagało.

  1. ALTER TABLE t2 AUTO_INCREMENT = value;

To znam, ale uzyskiwałem szybko ten efekt opcją 'optymalizuj tabele' a teraz nagle to przestało działać i nie wiem dlaczego.
nospor
Cytat
ale uzyskiwałem szybko ten efekt opcją 'optymalizuj tabele'

ALTER TABLE t2 AUTO_INCREMENT = value; jest równie szybkie winksmiley.jpg

ps: testujesz na serwerze produkcyjnym?
nitro11
Na VPS konkretnie.
nospor
Cytat
Na VPS konkretnie.
Szczerze powiedziawszy srednio mnie interesuje czy to vps, pc czy amiga.
Pytalem sie czy to serwer produkcyjny, czyli taki, na którym docelowo dziala aplikacja. smile.gif
Testy robi się na maszynie testowej a nie produkcyjnej. Na produkcyjną wrzuca się już działającą aplikacje. Wowczas nie ma problemu z tym, ze ID zaczyna się 345323 smile.gif
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.