Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Primary key
Forum PHP.pl > Forum > Bazy danych > MySQL
Ka-lolek
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
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
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
Mylicie sie. Stan autoincrment'u da sie zmienic ALETERem

A czemu piszesz w liczbie mnogiej. Ja pisałem że są rónież inne metody (czyli alter też) tongue.gif - nospor

Sorki smile.gif Drobne przeoczenie smile.gif - SongoQ
Peter15
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
@nospar - w jaki sposób wyczyścić całą tabele?
@SongoQ - możesz przyblizyć o co chodzi z tym ALTEREM?
Pozdro
SongoQ
@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:

  1. ALTER TABLE tabela AUTO_INCREMENT = 1

Mozesz dodac tez dodatkowe opcje, poszukaj w manualu

Czyszczenie tabeli:
  1. TRUNCATE TABLE tabela
Peter15
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.