Ka-lolek
15.07.2005, 12:20:28
Witam,
mam tabele gdzie primary key to pole ID i no sie automatycznie zwieksza (auto increment).
dodalem 7 rekordow, a nastepnie wszystkie usunalem. kiedy dodalem nowy rekord, to jego ID wynosilo 8 .
Dlaczego nie numeruje od nowa? da sie zrobic zeby po usunieciu rekordu ID sie cofalo?
nospor
15.07.2005, 12:24:20
auto increment działa tak, że zapamiętuje ostatnie ID. gdy się usuwa rekordy to powstają dziury w numeracji, ale kogo to obchodzi.
Jak chcesz wyzerować to trzeba to specjalnie zrobić. np. nie usuwać pokolei rekordów a wyczyścić całą tabelę. Jest parę innych sposobów ale nie używałem bo nie było potrzebne
kszychu
15.07.2005, 12:25:26
Z autoincrementem nie da się. Musiałbyś zrobić truncate table, wtedy wywaliłoby wszystko z tabeli, włącznie z następnym pamiętanym autindexem.
SongoQ
15.07.2005, 13:23:09
Peter15
15.07.2005, 20:55:32
sorki że odgrzebuje stary temat ale ja robie tak:
pobieram dane z bazy danych o id, po wykonani pętli while id wraca numer id ostatniej pozycji, powiększam id o 1 i zapisuje do do pozycji jaką dodaje.
Co sądzicie o tym rozwiązaniu? Jak lepiej to robić?
Ka-lolek
15.07.2005, 22:02:12
@nospar - w jaki sposób wyczyścić całą tabele?
@SongoQ - możesz przyblizyć o co chodzi z tym ALTEREM?
Pozdro
SongoQ
16.07.2005, 07:26:57
@Peter15 Troszeczke zly pomysl, poniewaz moze sie zdazyc ze sie operacje naloza. Jesli jakies zadanie zostanie wykonane miedzy selectem a insertem powstanie blad.
@Ka-lolek
Ustawienie auto increment:
ALTER TABLE tabela AUTO_INCREMENT = 1
Mozesz dodac tez dodatkowe opcje, poszukaj w manualu
Czyszczenie tabeli:
TRUNCATE TABLE tabela
Peter15
16.07.2005, 13:10:27
Cytat(SongoQ @ 2005-07-16 06:26:57)
@Peter15 Troszeczke zly pomysl, poniewaz moze sie zdazyc ze sie operacje naloza. Jesli jakies zadanie zostanie wykonane miedzy selectem a insertem powstanie blad.
Błąd mi jeszcze ani razu nie powstał za to obliczanie id przynajmniej mi się wydaje działać dobrze, tak się jeszcze zastanawiam na wydajnością. Co do nakładania to urzywam innych zmiennych
SongoQ
17.07.2005, 20:09:38
Cytat
Błąd mi jeszcze ani razu nie powstał
Jesli masz malo odwolan do serwera to nie powstanie, a jesli odwolania do bazy danych sa bardzo liczne to wtedy moze sie zdazyc.
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.