Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Primary key
Ka-lolek
post
Post #1





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 26.01.2005

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


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?
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




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
Go to the top of the page
+Quote Post
kszychu
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Z autoincrementem nie da się. Musiałbyś zrobić truncate table, wtedy wywaliłoby wszystko z tabeli, włącznie z następnym pamiętanym autindexem.
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


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ż) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) - nospor

Sorki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Drobne przeoczenie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) - SongoQ
Go to the top of the page
+Quote Post
Peter15
post
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 2.02.2005

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


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ć?

Ten post edytował Peter15 15.07.2005, 21:17:23
Go to the top of the page
+Quote Post
Ka-lolek
post
Post #6





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 26.01.2005

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


@nospar - w jaki sposób wyczyścić całą tabele?
@SongoQ - możesz przyblizyć o co chodzi z tym ALTEREM?
Pozdro
Go to the top of the page
+Quote Post
SongoQ
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@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
Go to the top of the page
+Quote Post
Peter15
post
Post #8





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 2.02.2005

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


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
Go to the top of the page
+Quote Post
SongoQ
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


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.
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: 22.08.2025 - 21:36