![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 5.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
witam!
mam mały problem z mysql.opisze problem na przykładnie ,mysle ze bedzie to bardziej zrozumiałe. w bazie danych mam utworzone jakies pola oraz pole id z parametrem auto_increment no i jest cos takiego ze gdy do bazy wrzuce jakies dane id przyjmuje wartosc 1 ,gdy usune te dane mam pusta tabele ,ale gdy znowu chce cos wrzucic to nie liczy mi od 0 tylko dodaje kolejna liczbe czyli w tym wypadku 2.no iteraz pytanko.jak zrobic zeby dawało kolejna liczbe ,ale zaleznie od id (czyli gdy mam id np 10 a rekordów było 15 ,usunołem 5 to zeby nie dawało 16 tylko 11) ![]() pozdrawiam. troche namotałem ale mysle ze szczaicie ![]() Ten post edytował cybergood 6.03.2006, 21:35:09 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Musisz zmienić wartość auto_increment ręcznie...
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A jaki to ma związek z php? Przenoszę
http://forum.php.pl/index.php?showtopic=32...l=autoincrement http://forum.php.pl/index.php?showtopic=30...l=autoincrement i proszę zmienic temat na wlaściwszy -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 5.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
dobra pomyliłem działy.
![]() sorry. temat zmieniłem. mysle ze na lepszy a nie taki ogólny. problem jeszcze nie rozwiązany bo nie mam czasu .jak bede chwile miał to jeszcze napisze pozdrawiam |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 24.04.2006 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
ALTER TABLE `tabela` TYPE = InnoDB (nie wiem czy TYPE jest potrzebne; nie chce mi sie sprawdzac, ogolnie pracuje teraz na innodb i to dziala wiec...)
Masz 2 rekordy. Wartosc auto-inc dla nast. rekordu wynosi 3. Kasujesz te rekordy, ale wartosc auto inc. caly czas wynosi 3. Dlatego przed dodaniem rekordu wykonaj zapytanie powyzej (defragmentacja). Wtedy nowy rekord bedzie mial id rowne 1, a nie 3. Nie wiem czy dobze to opisalem, pozatym chcialem uslyszec wasze opinie na ten tamat. Jesli natomiast skasujemy jakis srodkowy rekord (sa jakies inne, wieksze od niego) id zostanie utracone. Wiec tu pojawia sie moj problem, bo o ile wiem nie istnieje jakas bezwzgledna numeracja rekordow... (chyba ze "LIMIT x,1", gdzie 'x' to numer bezwzgledny rekordu(oczywiscie trzeba by te rekordy jakos wczesniej ulozyc, np. wlasnie wedlug auto-indexu.). A wiec? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 28.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem nigdy ludzi, ktorzy chca miec ladne kolejne liczby w polu, ktore automatycznie sie samo zwieksza, na 99% przypadkow pole takie nazywa sie id, czyli identyfikator rekordu i z jak to z samej nazwy wynika identyfikuje dany rekord czyniac go unikatowym - po to sa identyfikatory. I nie opwinny byc wazne ich wartosci jako jakas zmienna tylko wazne jest ze przez nie mozna sie odwolac do danego rekordu.
Moim zdaniem jezeli ktos opiera jakakolwiek logike na kolejnych polach typu samoinkrementujacego sie (tzn jezeli konkretne wartosci zapisane w tym polu sa dla niego wazne ) popelnia blad i powinien przeprojektowac aplikacje. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 24.04.2006 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Juz ich nie potrzebuje
![]() Moja aplikacja miala mechanizm poruszania sie po rekordach wg. wlasnie klucza id, dlatego jakiekolwiek braki powodowaly "dziury" w przegladaniu. Ale obszedlem to sposobem "LIMIT x,1" itd... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:44 |