Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana autoindex
Forum PHP.pl > Forum > Bazy danych > MySQL
openwater
Witam,

Mam tabelę w której dla jednej z kolumn mam ustawione autoindex. I problem w tym, iz usunąłem kilka rekordów, a autoindex nie uległ zmianie, i teraz chciałbym obniżyc jego wartość? Jest to możliwe? Bo szukam, kombinuję i jakoś nie mi to nie wychodzi.

Pozdrawiam,
Mar.
Dex1987
  1. ALTER TABLE `tabela` AUTO_INCREMENT =1
openwater
Ja rozumię idę autoincrement, wiem o powiązaniach kluczy itp. Ale ja posiadam jedną tabelę, więc nie zrobi mi to róznicy. A czytając tamten temat dalej nie znalazłem odpowiedzi na moje pytanie, czy jest to mozliwe, a jesli tak to jak?

Bo teraz mam wpisów 115, i każdy wpis ma ID od 1-115 i dodając kolejny tworzy się nowy wps z ID 118, więc jest przeskok o 3 oczka w górę, więc chciałem zmienić aktualny na 116.

//EDIT.

Nie zauważyłem powyższego posta. Dziękuje.
Dex1987
Wiec zrob tak jak ja Ci napisalem.

  1. <?php
  2. $query = mysql_query ("SELECT `id` 
  3. FROM `tabela`
  4.  ORDER BY `id` DESC"); 
  5.  
  6. $row = mysl_fetch_array ($query);
  7.  
  8. // $row['id'] - ostanie id w bazie
  9.  
  10. $query2 = mysql_query ("ALTER TABLE `tabela` AUTO_INCREMENT =' ".$row['id'] + 1. "'");
  11. ?>


Nie sprawdzalem to nie wiem czy chodzi. To musisz odpalic przed dodaniem kazdego nowego rekordu. A te stare id musza byc po kolei.
openwater
Dex1987, dzięki chodziło mi tylko o zmianę, którą dokonałem zapytaniem podanym w Twoim poprzednim poście. Teraz każdy nowo dodany rekord będzie tak jak chciałem.

Pozdrawiam,
Mar.
SongoQ
@Dex1987 Twoj przyklad jest nieoptymany. Jesli bedziesz mial miliony id to bedziesz je musial wszystkie zwrocic. Prosciej jest zastosowac MAX(id), dla bazy wydajniej i dla php.

Ta metoda ma pewna wade, poniewaz musisz to robic w transakcji.
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.